sed の使い方

書式:

sed -e ‘コマンド1’ [-e ‘コマンド2’ […]] [‘ファイル名’]

指定したファイル(省略した場合は標準入力)を入力テキストとして読み込み、
-e で指定したスクリプトを順番に実行して標準出力に書き出します。
 
-e で指定できる書式は次のようなものがあります。
 
■命令のみ指定するタイプ( -e 命令 ):

-e p

行バッファの内容を出力(Print)する。バッファの内容は操作しないため、-ep -ep のように複数指定すると指定回出力されます。バッファの消去には後述の d を使用します。また、全てのスクリプトを実行したあとにもバッファ内容が出力されます。

-e d

行バッファの内容を消去(Delete)する。通常、p 命令と組み合わせて利用します。
 
■正規表現パターン + 処理内容指定をするタイプ(-e /正規表現/命令):

-e /^foo/p

foo から始まる行を出力します。

-e ‘/boO$/d’

boO で終わる行をバッファから削除します。

-e ‘/[J][j]ohn/p’

John または john が含まれる行を出力します。
 
■正規表現による置換(-e s/正規表現/置換内容/オプション)

-e s/foo/boo/

各行バッファで最初に見つかった foo を boo に置換します。

-e ‘s/a/A/g’

バッファ中の全ての a を A に置換します。

-e s/john/JOHN/ig

バッファ中の全ての john(大文字小文字問わない)を大文字の JOHN に統一します。
 
例:

echo “Hallo, world” | sed -e s/a/e/

typo を訂正する(Hallo -> Hello)。

cat /var/log/httpd/access_log | sed -e ‘/GET/p’ -e ‘/^127\.0\.0\.1/p’ -ed

Apache のローカルからの GET アクセスを抽出する。