如何“搜索和替换”许多文件?
我使用grep
命令在许多文件中搜索字符串。 有没有类似“搜索和替换”的东西?
您正在寻找sed
命令。 例如,要在当前目录的所有文本文件中将“dog”替换为“cat”:
sed -i 's/dog/cat/' *.txt
sed
是正确的工具; 但是,作为替代方案,您甚至可以在vim
使用ex
命令:
vim -c 'args | argdo %s/cat/dog/g | x'
其中
是要进行替换的文件或模式的列表。
想到了sed。 例:
sed s/cat/dog/ output
这会在一行中搜索cat并将dog放在文件输入中的位置并写入文件输出。
您可以在Ex模式下使用Vim:
for b in *.txt do ex -sc '%s/OLD/NEW/g|x' "$b" done
-
%
选择所有行 -
替代品
-
g
替换每行中的所有实例 -
x
保存并关闭