grep
global regular expression print の略。
直訳すると全体正規表現(regular expression)出力とかになる?
よく |
で橋渡しされて検索などで使われる。
正規表現
特殊文字(メタ文字)を使って文字列をパターンとして指定できる機能。
標準規格がない。
Linux は POSIX にて正規表現の標準規格が定められている。
基本正規表現と、拡張正規表現の2種類。
拡張正規表現を使うには、
grep -E egrep
どちらかを使う。
代表的なメタ文字と使用例
記号 | 意味 | 使用例 | 一致する文字列の例 | 基本 | 拡張 |
---|---|---|---|---|---|
. | 任意の1文字 | abc. | abcd、abca | ◯ | ◯ |
^ | 行頭 | ^abc | abc から始まる行 | ◯ | ◯ |
$ | 行末 | abc$ | abc で終わる行 | ◯ | ◯ |
[ ] | [ ] の中のどれか1文字 | [abc] | abc のどれかが含まれる行 ※[ ] 内のメタ文字は通常の文字として扱われる |
◯ | ◯ |
[a-z] | a-z のアルファベットのどれか1文字 | a[a-z]c | aac、abc、acc | ◯ | ◯ |
[^ ] | [ ] の中にない、どれか1文字 | [^abc] | abc 以外が含まれる行 | ◯ | ◯ |
( ) | ( ) の中の文字列 | (abc) | 文字列 abc が含まれる行 | ◯ | ◯ |
* | 直前の文字の0回以上の繰り返し | abc* | ab、abc、abcc | ◯ | ◯ |
+ | 直前の文字の1回以上の繰り返し | abc+ | abc、abcc、abccc | ✕ | ◯ |
? | 直前の文字がまったくないか一つだけある | abc? | ab、abc | ✕ | ◯ |
| | 左右いずれかの文字列 | ab|bc | ab か bc のどちらかが含まれる行 | ✕ | ◯ |
\ | エスケープ記号 | \\ | メタ文字を通常の文字として扱う | ◯ | ◯ |