我想在目录下以递归方式搜索获取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']);
如何实现它?
答案 0 :(得分:0)
使用find
查找所有文件,xargs
运行sed
进行修改:
find dir -type f | xargs sed -i.bak 's#from#to#'
将找到 dir 下的所有文件,并将从替换为到,并使用扩展名“.bak”备份原始文件< / p>
N.B。 from 是一个基本的正则表达式,因此您需要在要搜索的字符串中转义任何BRE元字符。在单个文件上测试sed命令以使其正常工作是个好主意: 这将替换文件但不是修改文件而是将输出写入 test.out ,以便您可以检查结果sed 's#from#to#' file > test.out