Linux環境で作業を行う際、膨大なテキストデータやログファイルの中から必要な情報を素早く見つけ出すことは、業務効率を大きく左右します。その中でもgrepコマンドは、シンプルな使い方から高度な検索まで幅広く対応できる、Linuxユーザーにとって欠かせないツールです。本記事では、grepコマンドの基本から応用までをわかりやすくまとめ、実践的な活用方法を詳しく解説します。これからLinuxを使い始める方はもちろん、日々の業務でgrepをもっと使いこなしたい方にも役立つ内容です。
grepコマンドは、テキストデータから特定のパターンや文字列を検索するためのLinux標準コマンドです。ログ解析や設定ファイルの調査など、日常的な作業で頻繁に利用されます。
grep [オプション] 検索パターン ファイル名
grep error logfile.txt
logfile.txt
から「error」を含む行を表示オプション | 内容 |
---|---|
-i | 大文字・小文字を区別しない |
-v | パターンに一致しない行を表示 |
-r, -R | ディレクトリを再帰的に検索 |
-n | 行番号を表示 |
-l | 一致したファイル名のみ表示 |
-c | 一致した行数を表示 |
-e | 複数のパターンを指定 |
-E | 拡張正規表現を利用 |
-A [数値] | 一致した行の後ろに指定行数を表示 |
-B [数値] | 一致した行の前に指定行数を表示 |
-C [数値] | 一致した行の前後に指定行数を表示 |
・大文字・小文字を無視して検索
grep -i "linux" sample.txt
・複数ファイルを検索
grep "error" *.log
・ディレクトリ配下を再帰的に検索
grep -r "TODO" ./src
・行番号付きで表示
grep -r "TODO" ./src
・一致しない行を抽出
grep -n "pattern" file.txt
・複数パターンを同時に検索
grep -e "error" -e "fail" server.log
・前後の行も一緒に表示
grep -C 2 "Exception" logfile.txt
grepは正規表現による柔軟な検索が可能です。
^error
:行頭が「error」error$
:行末が「error」gr.p
:「g」「r」「任意の1文字」「p」lo+g
:「l」「o」が1回以上続き「g」拡張正規表現を使う場合は-E
オプションを付けます。
cat access.log | grep "404"
find . -name "*.log" | xargs grep "error"
grep "error" *.log | sort | uniq -c
-I
オプションでバイナリファイルを無視less
やmore
と組み合わせて閲覧grepコマンドはシンプルながら非常に強力な検索ツールです。オプションや正規表現を活用することで、日々の業務効率を大きく向上させることができます。Linux作業の必須コマンドとして、ぜひ使いこなしてみてください。