我使用該grep
命令在許多文件中搜尋字串。有沒有類似「搜尋和替換」的東西?
答案1
您正在尋找sed
命令。例如,要將目前目錄中所有文字檔案中的“dog”替換為“cat”:
sed -i 's/dog/cat/' *.txt
答案2
我想到了 sed。例子:
sed s/cat/dog/ <input >output
這會在一行中搜尋cat,並將dog放在檔案輸入中的位置上,然後寫入檔案輸出。
答案3
sed
是正確的工具;但是,作為替代方案,您甚至可以使用ex
以下命令vim
:
vim -c 'args <files> | argdo %s/cat/dog/g | x'
其中<files>
是要在其中進行替換的文件或模式的清單。
答案4
您可以在 Ex 模式下使用 Vim:
for b in *.txt
do
ex -sc '%s/OLD/NEW/g|x' "$b"
done
%
選擇所有行s
代替g
取代每行中的所有實例x
儲存並關閉