我需要递归地在一个目录内的所有文件和子目录中搜索指定的字符串,并用另一个字符串替换这个字符串。
我知道查找它的命令可能如下所示:
grep 'string_to_find' -r ./*
但是如何将string_to_find
的每个实例替换为另一个字符串呢?
发布于 2013-03-14 14:53:32
另一种选择是使用find,然后通过sed传递它。
find /path/to/files -type f -exec sed -i 's/oldstring/new string/g' {} \;
发布于 2013-03-14 14:42:44
我知道答案了。
grep -rl matchstring somedir/ | xargs sed -i 's/string1/string2/g'
发布于 2014-01-25 15:52:38
这最适合我在OS X上使用:
grep -r -l 'searchtext' . | sort | uniq | xargs perl -e "s/matchtext/replacetext/" -pi
来源:http://www.praj.com.au/post/23691181208/grep-replace-text-string-in-files
https://stackoverflow.com/questions/15402770
复制相似问题