次のシーケンスは、正規表現(アドレスとsコマンドで使用)の中で特別な意味を持ちます。
これらは基本正規表現でも拡張正規表現でも使えます(つまり、-E/-rオプションの有無にかかわらず使えます)。
\w任意の「単語文字」に一致します。「単語文字」とは、任意の字母、数字、またはアンダースコア文字です。
$ echo "abc %-= def." | sed 's/\w/X/g' XXX %-= XXX.
\W任意の「単語文字以外の文字」に一致します。
$ echo "abc %-= def." | sed 's/\W/X/g' abcXXXXXdefX
\b単語境界に一致します。つまり、左側が「単語文字」で右側が「単語文字以外の文字」である場合、またはその逆の場合に一致します。
$ echo "abc %-= def." | sed 's/\b/X/g' XabcX %-= XdefX.
\B単語境界以外のすべての位置に一致します。つまり、左側と右側の文字がともに「単語文字」であるか、ともに「単語文字以外の文字」である場合に一致します。
$ echo "abc %-= def." | sed 's/\B/X/g' aXbXc X%X-X=X dXeXf.X
\s空白文字(スペースとタブ)に一致します。パターンスペースやホールドスペースに含まれる改行にも一致します。
$ echo "abc %-= def." | sed 's/\s/X/g' abcX%-=Xdef.
\S空白文字以外の文字に一致します。
$ echo "abc %-= def." | sed 's/\S/X/g' XXX XXX XXXX
\<単語の先頭に一致します。
$ echo "abc %-= def." | sed 's/\</X/g' Xabc %-= Xdef.
\>単語の末尾に一致します。
$ echo "abc %-= def." | sed 's/\>/X/g' abcX %-= defX.
\`パターンスペースの先頭だけに一致します。複数行モードの^とは異なります。
次の2つの例を比較してください。
$ printf "a\nb\nc\n" | sed 'N;N;s/^/X/gm' Xa Xb Xc $ printf "a\nb\nc\n" | sed 'N;N;s/\`/X/gm' Xa b c
\'パターンスペースの末尾だけに一致します。複数行モードの$とは異なります。