Files
修改文件而不創建另一個文件
有沒有辦法修改文件而不將內容寫入另一個文件,沒有
sed
andawk
?例如:
$ cat test.txt aaa aaa bbb ccc ddd
sed
用-i
選項替換使用,sed -i 's/aaa/NNN/g' test.txt
將產生以下結果:NNN NNN bbb ccc ddd
沒有
awk
and怎麼辦sed
?
您可以使用
vi
腳本:$ vi test.txt -c '%s/aaa/NNN/ | wq' $ cat test.txt NNN NNN bbb ccc ddd
您只是自動化
vi
在命令模式下使用時通常輸入的內容(Esc``:
通常使用訪問):
%
- 在每一行執行以下命令:
s/aaa/NNN/
-aaa
替換為NNN
|
- 命令分隔符
w
- 將更改寫入文件
q
- 辭職
使用海綿:
#!/bin/bash pattern='aaa' replacement='NNN' while read -r line do printf '%s\n' "${line//$pattern/$replacement}" done < "${1}"
致電:
./script.sh test.txt | sponge test.txt