如何搜索字符串并将其替换为linux中的其他字符串?

时间:2012-07-09 09:00:29

标签: perl shell replace grep

我想在目录下以递归方式搜索获取string替换与另一个string。 例如: 我想搜索一个字符串

"var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");"

替换

var _gaq = _gaq || [];_gaq.push(['_setAccount', 'UA-7044592-1']);_gaq.push(['_setDomainName', 'news4u.com']);_gaq.push(['_trackPageview']);

如何实现它?

1 个答案:

答案 0 :(得分:0)

使用find查找所有文件,xargs运行sed进行修改:

find dir -type f | xargs sed -i.bak 's#from#to#'

将找到 dir 下的所有文件,并将替换为,并使用扩展名“.bak”备份原始文件< / p>

N.B。 from 是一个基本的正则表达式,因此您需要在要搜索的字符串中转义任何BRE元字符。在单个文件上测试sed命令以使其正常工作是个好主意:

sed 's#from#to#' file > test.out

这将替换文件但不是修改文件而是将输出写入 test.out ,以便您可以检查结果