sedのiコマンドとaコマンドを使うと、指定した行番号の前後に行を挿入できます。
使い勝手がとても良いコマンドなので紹介します。

スポンサーリンク

sedのiコマンドで、指定した行番号の前に行を挿入

sedのiコマンドを下記の形式で書くことで、指定した行番号の前の行に文字列を挿入することができます。

sed -e '行番号i 文字列' ファイル

例えば、下記のようにin.txtがあったとします。

 $ cat in.txt 
1.wc
2.mv
3.sed

2行目(行番号が2)の前に "INSERTLINE" の文字列を挿入する場合には、下記のように実行します。
実行すると、2行目の前の行に文字列が挿入されているのが確認できます。
 $ sed '2i INSERTLINE' in.txt 
1.wc
INSERTLINE
2.mv
3.sed

スポンサーリンク

sedのaコマンドで、指定した行番号の後ろに行を挿入

sedのaコマンドを下記の形式で書くことで、指定した行番号の後の行に文字列を挿入することができます。

sed -e '行番号a 文字列 ファイル'

例えば、下記のようにin.txtがあったとします。

 $ cat in.txt 
1.grep
2.cp
3.sed

2行目(行番号が2)の後に "INSERTLINE" の文字列を挿入する場合には、下記のように実行します。
実行すると、2行目の後の行に文字列が挿入されているのが確認できます。
 $ sed '2a INSERTLINE' in.txt 
1.grep
2.cp
INSERTLINE
3.sed

スポンサーリンク