2016-11-10 92 views
0

bash中的一個班輪(例如使用sed)在文件的最後一行之前追加行。追加行Bash文件

舊文件

foo bar 
foo bar 
foo bar 
foo bar 

新文件

foo bar 
foo bar 
foo bar 
--new foo bar 
foo bar 

我在OSX試圖sed

sed '$ i --new foo bar' file.sh 

我得到這個錯誤command i expects \ followed by text。有任何想法嗎?

回答

1

雖然sed的(例如GNU SED)一些版本支持如要插入文本中的同一行的i命令時,POSIX standard指定這樣的用法:

sed '$i\ 
--new foo bar' file.sh 

即,i是接着是反斜槓和換行符,然後是要插入的文本。

+0

所以這個按預期工作:),但我有一個插入後添加換行符。謝謝 – OdinRW

1

反斜槓和新行或新-e表達i後丟失:

sed -e '$i\' -e '--new foo bar' 
+0

'-e'給出'無效的命令代碼',但是新行可以工作 – OdinRW

+0

@OdinRW:這取決於你的版本和sed的風格。 – choroba