* sed [#h14d691f]

** 複数置換する [#a591b17e]

 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オプションを重ねる。

** 後方参照 [#i62e111e]
対象を「\(\)」でくるみ、「\1」で参照する。
 echo abc | sed 's/a\(.\)c/\1/'

 => b

** マッチした文字列を挿入する [#tecf4838]
「&」を使う。
 echo abc | sed 's/a/&XYZ/'

 => aXYZbc

 echo abc | sed 's/.*/&XYZ/'

 => abcXYZ

** 行末に文字列を挿入する [#r8106718]
 cat 1.txt

 => 01
    02
    03
    04

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

 => 01 END
    02 END
    03 END
    04 END

** マッチした行だけを表示する [#f3491518]
 sed -n '/abc/p' 1.txt
sedコマンドは-nオプションを付けないとファイルの全内容を表示する。ので、↑の場合、nオプション無だと二重に表示される。ので、nオプションを付ける。

** マッチした行を除外する [#a1f0b6df]
 sed '/abc/d' 1.txt

** 指定した行番号の行を除外する [#w428403a]
 cat 1.txt

 => 01
    02
    03
    04

 sed '2,3d' 1.txt

 => 01
    04

 sed '2,$d' 1.txt

 => 01

** 参考になるサイト [#m9469f53]
- http://www.grymoire.com/Unix/Sed.html
- http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_05_02.html#sect_05_02_01

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