1. sed

grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g'

例如:

对象:文件夹

grep -rl 'windows' ./path | xargs sed -i 's/windows/linux/g'

2. find

对象:文件

find -name 'test' | xargs perl -pi -e 's|windows|linux|g'
这里使用了perl语言,使用-e加上一段代码,从而批量地将当前目录及所有子目录下的file.log文件中的string1替换成了string2; string支持正则表达式

3. awk

grep -i "windows" -r ./path | awk -F : '{print $1}' | sort | uniq | xargs sed -i 's/windows/linux/g'

这里使用了shell命令,先查找出文件,再用awk分割(以:切分),再行替换!

注意:   grep可以使用正则,也可以使用\转义一些特殊字符,比如“等  
sed -i 's/\"localhost\"/\"10.2.2.2\"/g' /home/my.conf
更多:

sed replace word / string syntax

The syntax is as follows:

sed -i 's/old-word/new-word/g' *.txt

 

GNU sed command can edit files in place (makes backup if extension supplied) using the -i option. If you are using an old UNIX sed command version try the following syntax:

sed 's/old/new/g' input.txt > output.txt

 

You can use old sed syntax along with bash for loop:

#!/bin/bash
OLD="xyz"
NEW="abc"
DPATH="/home/you/foo/*.txt"
BPATH="/home/you/bakup/foo"
TFILE="/tmp/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
doif [ -f $f -a -r $f ]; then/bin/cp -f $f $BPATHsed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"elseecho "Error: Cannot read $f"fi
done
/bin/rm $TFILE

A Note About Bash Escape Character

A non-quoted backslash \ is the Bash escape character. It preserves the literal value of the next character that follows, with the exception of newline. If a \newline pair appears, and the backslash itself is not quoted, the \newline is treated as a line continuation (that is, it is removed from the input stream and effectively ignored). This is useful when you would like to deal with UNIX paths. In this example, the sed command is used to replace UNIX path "/nfs/apache/logs/rawlogs/access.log" with "__DOMAIN_LOG_FILE__":

#!/bin/bash
## Our path
_r1="/nfs/apache/logs/rawlogs/access.log"## Escape path for sed using bash find and replace
_r1="${_r1//\//\\/}"# replace __DOMAIN_LOG_FILE__ in our sample.awstats.conf
sed -e "s/__DOMAIN_LOG_FILE__/${_r1}/" /nfs/conf/awstats/sample.awstats.conf  > /nfs/apache/logs/awstats/awstats.conf# call awstats
/usr/bin/awstats -c /nfs/apache/logs/awstats/awstats.conf

The $_r1 is escaped using bash find and replace parameter substitution syntax to replace each occurrence of / with \/.

perl -pie Syntax For Find and Replace

The syntax is as follows:

perl -pie 's/old-word/new-word/g' input.file > new.output.file

 

来源:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

linux下查找某目录下所有文件包含某字符串的命令

#从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名#从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名#查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名#查找匹配的行数:
$ grep -c "被查找的字符串" 文件名#从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名#从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"linux"的行
find . -type f -name "*.txt" | xargs grep "linux" 

linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)...相关推荐

  1. linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)

    转自 http://blog.csdn.net/werm520/article/details/49334513 grep -rl '10.100.137.5' | xargs sed -i '10. ...

  2. linux如何查看指定目录下文件内容,Linux 系统下通过关键词查找指定目录下的文件内容...

    #!/bin/bash # 作者:靑龍一笑(C.S.Ricen) # 功能:根据指定的关键词,查找指定目录下的文件内容 # 要查找的目录 Search_Dir=/opt/datas/ # 关键字列表 ...

  3. Linux拓展之查找指定目录下的最大文件

    概述 有时候我们需要查找指定目录下的最大文件,通常说的指定目录包括该目录下的所有文件和子目录下的所有文件.如下是几种能查找最大文件的方法. 方法一 查找指定目录下的最大文件,但不包括所有子目录,只包括 ...

  4. 安卓 linux服务器文件夹,Android系统下根目录下文件

    在adb shell 中看根目录下的所有文件,今天来捋一捋. 有些人说,在adb shell下看到的手机根目录就是system分区. 我们还可以在根目录执行df命令或者mount命令查看具体挂载的所有 ...

  5. 在/tmp目录下,新建项目director新建3个TXT文件,分别命名file1 、fie2、fie3,用 vi编辑器分别在三个文件中输入内容

    1.在/tmp目录下,新建项目director新建3个TXT文件,分别命名file1.2.3 用vi编辑器分别在三个文件中输入内容 2 将三个file文件中的内容合并到一个文件中命名为 filetes ...

  6. findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?...

    findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机? Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  7. C++查找一个目录下所有特定扩展名的文件

    记录一个小技巧,查找一个目录下所有特定扩展名的的文件名.代码所示是查找所有后缀为".txt"的文件名,并将结果存储于名为statfileurllist的vector中 注:也可以查 ...

  8. linux把文件移到当前目录下,松勤软件测试-如何用Linux将一个文件移动到另一个目录下...

    原标题:松勤软件测试-如何用Linux将一个文件移动到另一个目录下 用mv命令进行操作 1.作用 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和mov ...

  9. .在/tmp目录下,新建项目director新建3个TXT文件,分别命名file1 、fie2、fie3,用 vi编辑器分别在三个文件中输入内容

    1.在/tmp目录下,新建项目director新建3个TXT文件,分别命名file1.2.3 用vi编辑器分别在三个文件中输入内容 2 将三个file文件中的内容合并到一个文件中命名为 filetes ...

最新文章

  1. java 制作报表案例_javaweb项目报表案例
  2. Facebook 宣布开源无线设备 打造全新5G世界
  3. meshgrid 的使用方法
  4. 蓝桥杯 基础练习 数列排序
  5. Linux 权限设置
  6. Swagger2+Apizza接口文档
  7. 接口测试用例设计的方法
  8. 关于移植STM32f107网口程序到GD32f107的问题
  9. 用MFC开发1连连看辅助器
  10. cam350怎么看顶层_CAM350常用快捷键
  11. Java--中文转换拼音,jpinyin-1.0.jar
  12. 图片在线裁剪和图片上传总结
  13. android对cpu硬件要求,Android手机想用64位处理器?系统阻碍
  14. Unity经典案例再现《太空大战》
  15. CSP第23次 202109-4 收集卡牌 C语言答案
  16. 怎么用计算机隐藏应用程序,win7 隐藏应用程序 电脑如何隐藏程序_win7教程_uc电脑园...
  17. TEB轨迹优化算法-代码解析与参数建议
  18. 15 个优秀开源的 Spring Boot 学习项目,一网打尽!
  19. Audition 2021(Au)下载安装及详细安装教程
  20. 用css3实现图片左右翻转

热门文章

  1. Spoken English-口语-练习频次
  2. php 类名访问静态属性,请问可以用类名直接调用静态属性吗?
  3. Java环境创建_Java环境的搭建
  4. jquery ajax xml attribute,获得jQuery ajax和asp.net webmethod xml响应工作
  5. c++ 转bcd码_8421BCD码转换为十进制
  6. python输入end退出循环_4.学习python获取用户输入和while循环及if判断语句
  7. dart string 转 bool_Dart语法篇之集合操作符函数与源码分析(三)
  8. RabbitMQ集群故障恢复详解
  9. STM32那点事(5)_ADC(中)
  10. 视觉 Transformer 综述