grepとは
パターンにマッチする行を表示する
-i | 大文字と小文字を区別しない | |
-n | 出力行頭に入力ファイルでの行番号を表示 | |
-r (-R) | ディレクトリ内も再帰的に読み込む | |
-v | マッチしなかった行を出力 | |
-E | 拡張正規表現を利用する | |
-Z | 圧縮ファイルを検索前に一度解凍する | |
-a | 検索ファイルが「テキストファイル」であると明示する(※) |
正規表現(少しだけ)
() | グループ化 | (山田|やまだ)(太郎|たろう) 山田太郎、山田たろう やまだ太郎、やまだたろう |
| | 左右のどちらか | 山|川|海 山 or 川 or 海 |
? | 直前の表現が0回or1回 | 山? 山がないか1つあるか |
* | 直前の表現が0回以上 | 山* 山が0個以上ある |
+ | 直前の表現が1回以上 | 山+ 山が1つ以上ある |
. | 任意の一文字 | . 何か一文字ある |
^ | 行頭 | ^あ 「あ」から始まる行 |
$ | 行末 | ん$ 「ん」で終わる行 |
例えば
「山」を含む行を検索(ex.ファイル名:example.txt)
grep "山" example.txt
「ab」「aB」「Ab」「AB」いずれかにマッチする行を検索
grep -i ab example.txt
「#」で始まる行を省く(コメント行以外)
grep -v '^#' example.txt
コメントと空行以外を抽出する ( ^$ は空行を表す )
cat /etc/example/list.txt | grep -v ^# | grep -v ^$
大文字と小文字を区別せず「error」という文字列を見つける
grep -i error /var/log/syslog
コメント