2014-03-02 81 views
2

我需要全部替換和寫回同一個文件如何用sed替換1個文件中的所有事件?

我想:這個打印

sed 's/one/two/g' file.txt 

出來,但不寫入文件

我也試過

sed 's/one/two/g' file.txt>file.txt 

此結果爲空文件

sed -i 's/one/two/g' file.txt 

給出的錯誤:sed: 1: "file.txt": invalid command code f

任何想法?

回答

3

對於Mac:使用-i.bak添加一個備份文件

sed -i.bak 's/one/two/g' file.txt 

或者

sed -i '' 's/one/two/g' file.txt 

對於Linux: 使用sed -i上做INFILE替代

sed -i 's/one/two/g' file.txt 

你也可以使用tmp文件做下面的事情:

sed 's/one/two/g' file.txt > tmp.txt && mv tmp.txt file.txt 
+1

1,'-i'手段 「就地」 – slezica

+0

MAC7:〜$ SED -i的/一/二/ G'file.txt的 SED:1: 「file.txt的」:無效命令代碼f – yarek

+0

@ user300675你可以在Mac上給-i.bak – Amit

相關問題