0

我想在一个目录下递归地搜索一个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']);

如何实现呢?

4

1 回答 1

0

用于find查找所有文件,并xargs运行sed以修改它们:

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

这将找到dir下的所有文件并将from替换为to,备份扩展名为“.bak”的原始文件

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

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

这将对文件进行替换,不会修改文件,而是将输出写入test.out,以便您检查结果。

于 2012-07-09T09:15:40.597 回答