概要
ログファイルから何らかの調査を行う事が多々あると思います。
ログに関しては、ファイルやログが膨大にある為、必要な情報を何らかの方法で検索しないと目的の情報が探し出せないと思います。エンジニアであれば良く使用しているであろうgrep
コマンドについて、ログ調査で良く使用する方法を学んだので、備忘録も兼ねて手順をまとめます。
コマンドの事前知識
cat
:ファイルの内容を表示する為に使用する
tail
:ファイルの末尾部分を表示する為に使用する。デフォルトでは、ファイルの最後の10行が表示される。-n
オプションを使用する事で、表示する行数も指定する事が可能
tail -n 20 ファイル名 # ファイルの最後の20行を表示
特定のファイル、ディレクトリを検索する方法
# 構文
ls | grep ファイル名 or ディレクトリ名
# 入力例
ls | grep test.log
特定の文字を検索する方法
- 検索文字には、正規表現を使用して検索する事も可能
# 構文
cat ファイル名 | grep '検索文字(検索したいパターン)'
tail ファイル名 | grep '検索文字(検索したいパターン)'
# 入力例
cat test_access.log | grep 'test'
tail test_access.log | grep 'test'
特定の文字を複数検索する方法
# 構文
cat ファイル名 | grep -e '検索文字1' -e '検索文字2' -e '検索文字3' etc
tail ファイル名 | grep -e '検索文字1' -e '検索文字2' -e '検索文字3' etc
# 入力例
cat test_access.log | grep -e 'test' -e 'aiueo'
tail test_access.log | grep 'test'
複数あるファイルの中から特定の文字が含まれたファイルのみを抽出する
# 構文
grep -rl '検索文字' .
# 入力例
grep -rl 'test' .
-r
: 指定したディレクトリとそのすべてのサブディレクトリ内のファイルが検索対象とする
-l
: 検索パターンにマッチした行を含むファイルの名前だけを抽出する。具体的なマッチした行の内容ではなく、どのファイルにマッチがあったかを知りたい場合に便利
.
: 現在のディレクトリを表す。状況に応じてパスを指定する
まとめ
今回grep
コマンドについて学んだので、業務の中で多様していきたいと思います。また、オプションも豊富にあるので、必要に応じで使用し、よりgrep
コマンドについて理解を深めていきたいと思います。