スポンサーリンク

sedで行数を指定して文字列を置き換える

※MACターミナル(BSD系)での動作確認です。
ただし、gsedをインストールして、aliasでalias sed='gsed'としています。

参考:sedで行番号を指定して、前後に行を挿入する

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

$ cat in.txt 
1awk
2find
3grep
4wc

N行目を str の文字列にcコマンドで置き換える場合は下記のように書きます。

sed 'Nc str' file.txt

例えば、3行目を after の文字列に置き換える場合は下記のように書きます。

$ sed '3c after' in.txt 
1awk
2find
after
4wc

検索にかかった文字列の行を置き換える場合です。
例えば、find の文字列が存在する行を、after の文字列に置き換える場合です。

$ sed '/find/c after' in.txt 
1awk
after
3grep
4wc

スポンサーリンク