正規表現とは
1 |
/regexp/ |
のように指定でき、文字列のパターンの照合などに利用できます。
正規表現の文字で便利な文字を簡単に紹介します。
文字 | 説明 |
---|---|
* | 0回以上のパターン |
. | 改行を含む任意の一文字 |
[list] | list内の単一文字 |
^ | 文字列の先頭 |
$ | 文字列の最後 |
一般的な正規表現とは微妙に異なる部分があるため、sedのドキュメントで利用できる正規表現を確認することをお勧めします。
グループ化と後方参照
正規表現のグループ化'\(\)'は後方参照に利用できます。これは正規表現の検索やsコマンドの文字列の置換に利用できます。
後方参照は\1から\9までで'\'と一桁の数字で表されます。
正規表現の検索の例
1 2 3 4 5 6 7 8 9 10 |
$ seq 100 | sed -n '/^\(.\)\1/p' 11 22 33 44 55 66 77 88 99 |
文字列置換の例
1 2 3 4 5 6 7 8 9 10 |
$ seq 100 | sed -n 's/^\(\(.\)\2\)/==\1==/;/^==/p' ==11== ==22== ==33== ==44== ==55== ==66== ==77== ==88== ==99== |
後方参照をするときの数値は括弧の'\('で数えていくとどの部分が参照されるのかがわかりやすいです。