このページの内容

5.1 sedでの正規表現の概要

sedの使い方を知るには、正規表現(略してregexp)を理解する必要があります。正規表現は、対象の文字列に対して左から右へ照合するパターンです。ほとんどの文字は通常の文字で、パターン中でその文字自身を表し、対応する文字に一致します。sedの正規表現は2つのスラッシュの間に指定します。

次のコマンドは、文字列「hello」を含む行を表示します。

sed -n '/hello/p'

上の例は、次のgrepコマンドと同じです。

grep 'hello'

正規表現の強力さは、パターンに選択や繰り返しを含められることにあります。これらは特殊文字を使ってパターンに記述します。特殊文字はその文字自身を表すのではなく、特別な方法で解釈されます。

正規表現中の^(キャレット)は行の先頭に一致します。.(ピリオド)は任意の1文字に一致します。次のsedコマンドは、文字「b」で始まり、その後に任意の1文字、続いて文字「d」がある行に一致して表示します。

$ printf "%s\n" abode bad bed bit bid byte body | sed -n '/^b.d/p'
bad
bed
bid
body

以下の節では、正規表現の特殊文字の意味と使い方を説明します。