* sedコマンド [#h14d691f]

** 置換 [#t74cd619]
*** 複数置換する [#a591b17e]
 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
「;」でつなぐ。

*** 後方参照 [#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]
 sed -e 's/$/ END/' 1.txt

 HELLO END
 WORLD END

*** マッチした行の間にある全ての行に対して置換する [#n887f5f4]
 sed '/TWO/,/FOUR/s/^/#/' 1.txt

 ONE
 #TWO
 #THREE
 #FOUR
 FIVE

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

** 検索・抽出 [#d159ec49]
*** マッチした行だけを表示する [#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