從Bash命令查找和替換文本文件對于給定的輸入字符串進行查找和替換的最簡單方法是什么,比方說abc,并替換為另一個字符串,比如XYZ在文件中/tmp/file.txt?我正在編寫一個應用程序并使用IronPython通過SSH執行命令 - 但我不熟悉Unix,也不知道要查找什么。我聽說Bash除了是命令行界面外,還可以是一種非常強大的腳本語言。所以,如果這是真的,我假設您可以執行這些操作。我能用bash做什么,以及實現目標的最簡單(一行)腳本是什么?
3 回答
Helenr
TA貢獻1780條經驗 獲得超4個贊
最簡單的方法是使用sed(或perl):
sed -i -e 's/abc/XYZ/g' /tmp/file.txt
由于該-i選項,將調用sed進行就地編輯。這可以從bash調用。
如果你真的真的想使用bash,那么以下內容可以工作:
while read a ; do echo ${a//abc/XYZ} ; done < /tmp/file.txt > /tmp/file.txt.t ; mv /tmp/file.txt{.t,}
這循環遍歷每一行,進行替換,并寫入臨時文件(不想破壞輸入)。最后的移動只是臨時移動到原始名稱。
收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
文件操作通常不是由Bash完成的,而是由Bash調用的程序完成的,例如:
> perl -pi -e 's/abc/XYZ/g' /tmp/file.txt
該-i標志告訴它進行就地替換。
有關man perlrun詳細信息,請參閱參考資料,包括如何備份原始文件。
添加回答
舉報
0/150
提交
取消
