grep
指定した文字列がテキスト内の存在した場合、その行を抽出する
■よく使う形(例)
※apacheのアクセスログから、FireFoxでアクセスされたリストを出力する。
# grep Firefox /var/log/apache/access_log
221.95.88.49 - - [11/Feb/2007:14:34:35 +0900] "GET / HTTP/1.1"
301 241 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.1)
Gecko/20061204 Firefox/2.0.0.1"
221.95.88.49 - - [11/Feb/2007:14:34:35 +0900] "GET /index.php
HTTP/1.1" 200 14765 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja;
rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
※apacheのアクセスログから、LINUXというディレクトリ下にあるhtmlファイルをアクセスしたログを抽出する。
# grep '.*/LINUX/.*\.html' access_log
61.197.192.138 - - [08/Feb/2007:09:55:39 +0900] "GET
/LINUX/intro/check.html HTTP/1.1" 301 255 "-" "Mozilla/5.0 (Windows; U;
Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"
61.197.192.138 - - [08/Feb/2007:10:05:29 +0900] "GET
/LINUX/reference/vmstat.html HTTP/1.1" 301 255 "-" "Mozilla/5.0
(Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1
(ax)"
※catコマンドと組み合わせて、apacheのアクセスログの件数(行数)を調べる。
# cat access_log | grep "" -c
1042949
|
| sedコマンド とよく似た使い方(正規表現やオプション指定等)ができる。 |
■主なオプション
| オプション |
機能説明 |
| -n |
文字列(または文字列パターン)に合致した行と行番号を表示する。
|
| -v |
文字列(または文字列パターン)に合致しない行を表示する。 |
| -i |
大文字小文字の区別をしないで検索。 |
| -f |
ファイルから検索パターンを読み込んで検索する。 |
※その他、オプションは多数ありますが、専門のコマンドリファレンスやmanコマンド等でご確認下さい。
|