在vi
编辑器中,我了解以下行会搜索并替换文件中所有出现的内容:
:%s/search_string/replacement_string/g
如何在所有子目录(整个文件夹树)中的所有文件中搜索字符串,并在所有这些文件中进行替换(出现搜索字符串)?
答案 0 :(得分:0)
我更喜欢使用sed在vim之外执行此操作:
find . -type f -name "*" | xargs sed -i "s/search_string/replacement_string/g"
在当前目录下及其下的所有文件中,将search_string
的所有实例替换为replacement_string
。
OSX(BSD sed):
find . -type f -name "*" | xargs sed -i '' "s/search_string/replacement_string/g"
请注意多余的空字符串arg sed -i '' "s/...
奖金:我经常发现在所有文件中进行交互搜索/替换(每次替换均带有y / n提示)很有用。 Vim处理得很漂亮:
for filename in $(find . -type f -name "*"); do vim -c "%s/search_string/replacement_string/gc" -c "wq" "${filename}"; done
感谢所有过去回答过此问题并帮助我进行了无数次重构的人员。 Search and replace in Vim across all the project files