conf t

インフラエンジニアのメモ

grepで複数の単語をor検索する

grepで複数の単語をor検索する

linuxにてアクセスログ(/var/log/access.log)からPOSTとGETの件数を集計したかったため、grepを用いてキーワード"POST"と"GET"でor検索がしたい。
結論からいうと、以下コマンドで実現できました。
また、Windows上で検索したい場合、サクラエディタを使えばできます。

linux
以下コマンドを実行する
※3つ以上の複数キーワードでorしたい場合、キーワードのパイプを増やせば可能
grep "POST\|GET" /var/log/access.log

サクラエディタ
Ctrl + Gのgrepにて以下を入力し検索する
POST|GET

詳しい解説

Linuxの場合
linuxgrepの場合は\で|をエスケープしなければただしくgrepできません。
また、ダブルクオートなしの以下パターンの場合もうまくいきません。

grep POST\|GET /var/log/access.log

grep POST|GET /var/log/access.log

サクラエディタの場合
サクラエディタでもor条件の検索ができます。
Ctrl + Gでgrepウインドウを表示し、「正規表現」にチェックを入れます。

f:id:monaski:20150620204007p:plain:w500

条件に以下を入力します。|の前に\は必要ありませんでした。

POST|GET

3つ以上の複数キーワードでorしたい場合、パイプを増やせば可能です。

grep "POST\|GET\|php" /var/log/access.log