レス
前レス
元トピ
次レスタイトル
Re: grep・sedの正規表現について
フォーラム
最強WEB問題集LinuC/LPIC Lv1 101
投稿ユーザ(投稿日)
(2014/3/14)本文
ご確認いただいたgrepですが、-Eオプションで拡張正規表現が使用できる設定(egrepと同じ)になっています。
-Eオプションがない場合は、¥が必要です。
作成したサンプル
[code]
[user@LPIC101 grep]$ cat regexp.txt
a
a+a
a+aa
aaa
xxa
xxaa
xxaaa
abc|def
abc
def
acb
dfe
[/code]
[code]
[user@LPIC101 grep]$ grep 'a+a' regexp.txt
a+a
a+aa
[/code]
¥がないと"+"という文字列として認識されるので
a+aを含まない行がマッチしない
[code]
[user@LPIC101 grep]$ grep 'a\+a' regexp.txt
a+aa
aaa
xxaa
xxaaa
[/code]
¥があると+がメタキャラクタとして認識されるので
aが2回連続しない"a+a"はマッチしなくなる。
[code]
[user@LPIC101 grep]$ grep 'abc|def' regexp.txt
abc|def
[/code]
|が文字列として認識されているので、"abc|def"を含む行のみマッチ
[code]
[user@LPIC101 grep]$ grep 'abc\|def' regexp.txt
abc|def
abc
def
[/code]
¥があると|がメタキャラクタとして認識されるので
"abc"または"def"どちらか一方が含まれているとマッチする
参考
[code]
[user@LPIC101 grep]$ grep -E 'abc\|def' regexp.txt
abc|def
[/code]
-Eオプションをつけると拡張正規表現となるので
¥の後の"|"がエスケープされ、"abc|def"を含む行がマッチする
レス一覧
前レス
元トピ
次レス
Copyright (c) 2010
Ping-t All rights reserved.