2016-11-10 71 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