sed

複数置換する

 cat 1.txt
 => 01
    02
    03
    04
 sed -e 's/1/A/g' -e 's/0/X/g' 1.txt
 => XA
    X2
    X3
    X4

eオプションを重ねる。

後方参照

対象を「\(\)」でくるみ、「\1」で参照する。

 echo abc | sed 's/a\(.\)c/\1/'
 => b

マッチした文字列を挿入する

「&」を使う。

 echo abc | sed 's/a/&XYZ/'
 => aXYZbc
 echo abc | sed 's/.*/&XYZ/'
 => abcXYZ

行末に文字列を挿入する

 cat 1.txt
 => 01
    02
    03
    04
 sed -e 's/$/ END/' 1.txt
 => 01 END
    02 END
    03 END
    04 END

マッチした行だけを表示する

 sed -n '/abc/p' 1.txt

sedコマンドは-nオプションを付けないとファイルの全内容を表示する。ので、↑の場合、nオプション無だと二重に表示される。ので、nオプションを付ける。

マッチした行を除外する

 sed '/abc/d' 1.txt

指定した行番号の行を除外する

 cat 1.txt
 => 01
    02
    03
    04
 sed '2,3d' 1.txt
 => 01
    04
 sed '2,$d' 1.txt
 => 01

参考になるサイト


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS