2015-07-05 46 views
-1
sed -e "\$aDNS3=" <filedirectory> 

我試圖在文件末尾添加行「DNS3 =」,因此執行命令在bash腳本中打開文件並將DNS3 =包含在最後一行,但未保存更改。無論如何要保存更改並且不顯示所做的更改?

回答

2

您可以使用-i選項。這將就地編輯文件。

man sed

-i [SUFFIX],--in就地[= SUFFIX]代替

編輯文件(使備份,如果供給SUFFIX)

使用sed -e "\$aDNS3=" -i filename會將DNS3=設置爲文件的最後一行。

0
echo "DNS=" >> file 

會更簡單,速度更快,因爲它不需要讀取文件。

+0

唯一的問題是最後缺少換行符的文本文件。 – jthill

+0

@jthill:嚴格來說,沒有以換行符結尾的文件不是文本文件。確實,你應該知道你在追加什麼,但'echo >> file'是追加的經典成語。 – rici

+0

那裏沒有問題,只有當一個文件可能已經被不信任的用戶觸及時,額外的清理變得健全。 – jthill