今更人には聞けないgrepのオプション(後編)
前編はこちら。
- -G (--basic-regexp)
- -E (--extended-regexp)
- -e PATTERN (--regexp=PATTERN)
- -w (--word-regexp)
- -x (--line-regexp)
- -F (--fixed-strings)
- -i (--ignore-case)
- ちょっとしたTips
PATTERNを、基本正規表現(Regular Expression)として扱います。デフォルトです。
PATTERNに、拡張正規表現(Extended Regular Expression)を使えるようにします。
PATTERNが"-(ハイフォン)"から始まっている場合、grepはエラーになります。-eオプションをつけることで、"-"から始まるPATTERNを指定することが可能になります。
例:
$ cat data.txt
A-BCDE
$ grep "-BCD" data.txt
grep: unknown option -- B
$ grep '-BCD' data.txt
grep: unknown option -- B
$ grep -e "-BCD" data.txt
A-BCDE
単語として完全にマッチする行のみ選択します。
$ cat data.txt
CD
CDDB
ECD
$ grep -w "CD" ./data.txt
CD
行全体と正確にマッチする行だけを選択します。
例:
$ cat data.txt
ABCDE
$ grep -w "BCD" data.txt
$ grep -w "ABCDE" data.txt
ABCDE
PATTARNを、改行で区切られた複数の文字列リストとして扱い、いずれかとマッチした場合選択します。
$ cat data.txt
ABCDE
FGHIJ
KLMNO
PQRST
UVWXY
$ grep "CD
ST
XY" ./data.txt
ABCDE
PQRST
UVWXT
マッチングの時に、英大文字と小文字の区別をしません。
例:
$ cat data.txt
AbCDE
$ grep "BCD" data.txt
$ grep -i "BCD" data.txt
AbCDE
設定ファイルでよく使われる、先頭に#が入ったコメント行以外を抜き出す方法が以下の2通りがあります。
$ grep "^[^#]" ./data.txt
$ grep -v "^#" ./data.txt