sedコマンド

置換

複数置換する

 sed -e 's/H/h/g' -e 's/O/o/g' 1.txt
 hELLo
 WoRLD

eオプションを重ねる。または、

 sed -e 's/H/h/g; s/O/o/g' 1.txt

「;」でつなぐ。

後方参照

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

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

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

「&」を使う。

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

行末に文字列を挿入する

 sed -e 's/$/ END/' 1.txt
 HELLO END
 WORLD END

マッチした行の間にある全ての行に対して置換する

 sed '/TWO/,/FOUR/s/^/#/' 1.txt
 ONE
 #TWO
 #THREE
 #FOUR
 FIVE

「TWO」から「FOUR」までの行に対してs/^/#/を実行する。

検索・抽出

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

 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