Centos中查找并替换某个目录下所有文件中的某个字符
1.批量查找某个目下文件的包含的内容
cd etc
grep -rn "查找的内容" ./
文件内容比较多的话,执行完命令需要等一会。
2.批量替换某个目下所有包含的文件的内容
还是以etc目录为例
cd etc
sed -i "s/查找的内容/替换后的内容/g" `grep -rl "查找的内容" ./`
用sed命令可以批量替换多个文件中的字符串。
sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
例如:我要把mahuinan替换为huinanma,
执行命令:
sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'
这是目前linux最简单的批量替换字符串命令了!
具体格式如下:
sed -i "s/oldString/newString/g" `grep oldString -rl /path`
实例代码:
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`
注意转义:
实例:
sed -i "s/<script src=\"http:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4\/query.min.js\" type=\"text\/javascript\"><\/script>/ /g" `grep '<script src="http:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.4\/jquery.min.js" type="text\/javascript"><\/script>' -rl test/`
sed -i "s/https:\/\/code.jquery.com\/jquery-1.12.4.min.js/<%=basePath%>\/js\/jquery\/jquery-1.12.4.min.js/g" `grep -rl "https:\/\/code.jquery.com\/jquery-1.12.4.min.js" ./`
————————————————
版权声明:本文为CSDN博主「rhsy445566」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rhsy445566/article/details/107594474
以下内容是自己的经验:
1、sed -i "s/ / /g" `grep ......`这个命令格式在碰到替换复杂字符串时会报错,-bash: syntax error near unexpected token `<',后来的解决办法是用grep命令先找出需要修改的文件,用cut -d : -f 1命令截取所需文件名后,再使用sed -i s/ / /g 这种不带双引号的命令更改,比较麻烦。
2、碰到管道符|,grep查找时可以用\|转义,但在替换时最好用\x7c(16进制)代替\|