スポンサーリンク

sedで指定した行の文字列を置換する

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

下記の形式で、指定した行の文字列を置換することができます。

sed -e '行番号s/置換対象文字列/置換文字列/g' 入力ファイル

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

$ cat in.txt 
1grep
2lsw
3gawk
4wc

例えば、2行目の ls を cat に置換する場合は、下記のように書けます。

$ sed '2s/ls/cat/g' in.txt 
1grep
2catw
3gawk
4wc

更に、複数行に渡って行数を指定することもできます。
例えば、2行目から4行目の w を h に置換する場合は、"," で区切って下記のように書けます。

$ sed '2,4s/w/h/g' in.txt 
1grep
2lsh
3gahk
4hc

スポンサーリンク