Re: grep・sedの正規表現について
gndqj583
投稿数: 3
ご確認いただいたgrepですが、-Eオプションで拡張正規表現が使用できる設定(egrepと同じ)になっています。
-Eオプションがない場合は、¥が必要です。
作成したサンプル
¥がないと"+"という文字列として認識されるので
a+aを含まない行がマッチしない
¥があると+がメタキャラクタとして認識されるので
aが2回連続しない"a+a"はマッチしなくなる。
|が文字列として認識されているので、"abc|def"を含む行のみマッチ
¥があると|がメタキャラクタとして認識されるので
"abc"または"def"どちらか一方が含まれているとマッチする
参考
-Eオプションをつけると拡張正規表現となるので
¥の後の"|"がエスケープされ、"abc|def"を含む行がマッチする
-Eオプションがない場合は、¥が必要です。
作成したサンプル
[user@LPIC101 grep]$ cat regexp.txt
a
a+a
a+aa
aaa
xxa
xxaa
xxaaa
abc|def
abc
def
acb
dfe
[user@LPIC101 grep]$ grep 'a+a' regexp.txt
a+a
a+aa
a+aを含まない行がマッチしない
[user@LPIC101 grep]$ grep 'a\+a' regexp.txt
a+aa
aaa
xxaa
xxaaa
aが2回連続しない"a+a"はマッチしなくなる。
[user@LPIC101 grep]$ grep 'abc|def' regexp.txt
abc|def
[user@LPIC101 grep]$ grep 'abc\|def' regexp.txt
abc|def
abc
def
"abc"または"def"どちらか一方が含まれているとマッチする
参考
[user@LPIC101 grep]$ grep -E 'abc\|def' regexp.txt
abc|def
¥の後の"|"がエスケープされ、"abc|def"を含む行がマッチする
投稿ツリー
-
grep・sedの正規表現について
(gndqj583, 2014-3-14 14:43)
- Re: grep・sedの正規表現について (arashi1977, 2014-3-14 17:04)
-
Re: grep・sedの正規表現について
(gndqj583, 2014-3-15 5:38)
- Re: grep・sedの正規表現について (arashi1977, 2014-3-15 10:16)