2016-11-10 3 views
0

ファイル内の最後の行の前に行を追加するには、bashのライナー(たとえば、sedを使用)を使用します。行バッシュファイルを追加する

古いファイル

foo bar 
foo bar 
foo bar 
foo bar 

新しいファイル

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

は、私はこのエラーを取得すること

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

のようにOSX上sedを試してみました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