概要
改修時の影響調査やログ解析を行う際、grepコマンドを用いて調査することが多いと思います。
この記事では、状況ごとに使えるgrepコマンドについてまとめていきます。
この記事で書かないこと
- コマンドについての詳細な説明
- コマンド実行例
#grepコマンド例
ソースコード内調査の場合
###gitリポジトリ内でgrepを行う
git管理しているリポジトリ内でgrepを実施する際は、「git grep」コマンドを使用することができます。
以下例では、大文字小文字を区別しない際に使用する「-i」オプションをつけた際のコマンド例を記載しています。
git grep -i 'targetWord'
####参考
Git - git-grepDocumentation
ログ解析の場合
###特定のログレベルのログをgrepしたい
//ログレベル「ERROR」のログを出力する
grep ERROR target.log
//ログレベル「ERROR」および「WARN」のログを出力する
grep -e WARN -e ERROR target.log
//ログレベル「INFO」以外のログを出力する
grep -v INFO target.log
####参考
運用や調査でログを確認するときによく使うコマンド集
###特定時間帯のログをGrepしたい
正規表現を使うことで特定の時間帯のログをgrepすることができます。
以下では「HH:MM:SS」形式で時刻が出力されているログに対してGrepをかけた想定で記載します。
//15時台のログを取得する
grep -E "15:[0-5][0-9]:[0-9][0-9]" target.log
//15時台と16時台のログを取得する
grep -E "1[5,6]:[0-5][0-9]:[0-9][0-9]" target.log
圧縮ファイルに対してgrepを実施したい
以下大文字小文字を区別しない際に使用する「-i」オプションとgrep結果に行番号を出力する「-n」オプションをつけた場合のコマンド例を記載します。
ZIP形式
ZIP形式の場合は「zipgrep」コマンドを使用します。
//一つのファイルに対してgrepする場合
zipgrep -i -n keyWord targetFile.zip
//ディレクトリ配下に格納されている全てのファイルに対してgrepする場合
zipgrep -i -n keyWord targetDirectory/*
参考
【 zipgrep 】コマンド――ZIPファイルの中を文字列検索する
Gz形式
Gz形式の場合は「zgrep」コマンドを使用します。
//一つのファイルに対してgrepする場合
zgrep -i -n keyWord targetFile.gz
//ディレクトリ配下に格納されている全てのファイルに対してgrepする場合
zgrep -i -n keyWord targetDirectory/*
参考
zgrep - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
※上記以外のファイル形式については未確認です。確認が取れ次第、更新します。