sedを使用して「test message1」の後に新しい行を追加するには? [コピー]

sedを使用して「test message1」の後に新しい行を追加するには? [コピー]

実際には.というファイルがありますtest1.txt

そのファイルには次の5行があります。

 'test message1'
 'test message2'
 'test message3'
 'test message4'
 'test message5'

これで、この行の後にファイル'testing testing'に新しい行を追加したいと思います。どうすればいいですか?test1.txt'test message1'

ベストアンサー1

これはaこのコマンドは次のことを行います。

sed -e "/test message1/a\\
'testing testing'" < data

このコマンドは次のことを行います。

現在のサイクルの終わりまたは次の入力行を読み取るときに、出力のためにこのコマンドの後に続くテキスト行(出力から削除される\で終わる最後の行を除く)をキューに入れます。

したがって、この場合、pendと行を一致させると、/test message1/ファイルの新しい行となるテキスト引数 ""を使用してコマンドを実行します。a'testing testing'

 'test message1'
 'testing testing'
 'test message2'
 'test message3'
 'test message4'
 'test message5'

最後ではなく各行をバックスラッシュで終了すると、複数行を挿入できます。上記の二重バックスラッシュは、シェルがそれを食べることを防ぐためのものです。スタンドアロンスクリプトで使用している場合は、sed単一のバックスラッシュを使用してください。 GNUはまた、後ろsedに1行のテキストを許可しますaが、これは移植可能ではありません。

おすすめ記事