转自 http://blog.csdn.net/werm520/article/details/49334513

grep -rl ‘10.100.137.5’ | xargs sed -i ‘10.100.146.239’

  1. sed
    C代码 收藏代码
    grep -rl matchstring somedir/ | xargs sed -i ‘s/string1/string2/g’

例如:

对象:文件夹
C代码 收藏代码
grep -rl ‘windows’ ./path | xargs sed -i ‘s/windows/linux/g’

  1. find
    对象:文件
    C代码 收藏代码
    find -name ‘test’ | xargs perl -pi -e ‘s|windows|linux|g’

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

  2. awk
    C代码 收藏代码
    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:
C代码 收藏代码
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:
C代码 收藏代码
sed ‘s/old/new/g’ input.txt > output.txt

You can use old sed syntax along with bash for loop:
C代码 收藏代码

!/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
do
if [ -f $f -a -r $f ]; then
/bin/cp -f $f $BPATH
sed “s/$OLD/$NEW/g” “$f” > $TFILE && mv $TFILE “$f”
else
echo “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“:
C代码 收藏代码

!/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:
C代码 收藏代码
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下查找某目录下所有文件包含某字符串的命令

C代码 收藏代码

从文件内容查找匹配指定字符串的行:

$ grep “被查找的字符串” 文件名

从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

查找时不区分大小写:

$ grep –i “被查找的字符串” 文件名

查找匹配的行数:

$ grep -c “被查找的字符串” 文件名

从文件内容查找不匹配指定字符串的行:

$ grep –v “被查找的字符串” 文件名

从根目录开始查找所有扩展名为.txt的文本文件,并找出包含”linux”的行

find . -type f -name “*.txt” | xargs grep “linux”

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

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

    1. sed grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g' 例如: 对象:文件夹 grep -rl 'windo ...

  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. 红旗linuxcentos_用红旗Linux 11的体验报告,附使用红旗Linux 11截图
  2. 【学习笔记】超简单的多项式求指(含泰勒展开式、牛顿迭代完成证明)
  3. 18State(状态)模式
  4. 宜人贷,指旺理财,投米网有什么不一样?
  5. HDU3662(求三维凸包表面的多边形个数,表面三角形个数,体积,表面积,凸包重心,凸包中点到面的距离)
  6. mysql8 grant语法失效
  7. ECMAScript 和 JavaScript 的关系
  8. vivo6.0系统怎么样不用root激活XPOSED框架的方法
  9. Java-Android 之Hello World
  10. 解决 Chrome 下载不了东西 失败 - 已屏蔽 的问题
  11. HDU - 5875 Function [单调性剪枝+预处理]
  12. 【JavaScript 插件】实现图片倒影效果 - reflex.js
  13. live2d动态壁纸android,Live2d动态壁纸
  14. FMEA软件功能失效矩阵-交叉表 vs 树形矩阵
  15. 2023秋招--广州光娱--游戏客户端--面经
  16. 微软自带dns服务器,win10微软设置哪个DNS服务器地址最快
  17. Symbol的基本使用
  18. EMLOG模板山河网站主题分享
  19. 为什么需要工作流调度系统?
  20. JS中的函数参数传递到底是按值传递还是按引用传递

热门文章

  1. 程序员6年换了8份工作,工资从4.5K涨到40K,网友问:谁敢要你?
  2. html5是未来,开始用吧!
  3. PDX模型不靠谱,土豪来发resource;细菌帮助癌转移,诺奖发现被推翻
  4. 精选| 2020年12月R新包推荐(第49期)
  5. 一场大病引起的诺贝尔2017年生理学奖角逐
  6. 第41课 蜗牛与葡萄树 《小学生C++趣味编程》
  7. 第40课 儿歌《打老虎》-2021.08.10 《小学生C++趣味编程》
  8. windows下环境变量配置后没生效,不重启电脑的解决办法
  9. 【docker】第二节:安装nginx、mysql、php
  10. 博图os更新_博途TIA安装与更新