Linux環境で作業を行う際、膨大なテキストデータやログファイルの中から必要な情報を素早く見つけ出すことは、業務効率を大きく左右します。その中でもgrepコマンドは、シンプルな使い方から高度な検索まで幅広く対応できる、Linuxユーザーにとって欠かせないツールです。本記事では、grepコマンドの基本から応用までをわかりやすくまとめ、実践的な活用方法を詳しく解説します。これからLinuxを使い始める方はもちろん、日々の業務でgrepをもっと使いこなしたい方にも役立つ内容です。
grepコマンドとは
grepコマンドは、テキストデータから特定のパターンや文字列を検索するためのLinux標準コマンドです。ログ解析や設定ファイルの調査など、日常的な作業で頻繁に利用されます。
基本的な使い方
grep [オプション] 検索パターン ファイル名
grep error logfile.txt
→logfile.txt
から「error」を含む行を表示
主なオプション一覧
オプション | 内容 |
---|---|
-i | 大文字・小文字を区別しない |
-v | パターンに一致しない行を表示 |
-r, -R | ディレクトリを再帰的に検索 |
-n | 行番号を表示 |
-l | 一致したファイル名のみ表示 |
-c | 一致した行数を表示 |
-e | 複数のパターンを指定 |
-E | 拡張正規表現を利用 |
-A [数値] | 一致した行の後ろに指定行数を表示 |
-B [数値] | 一致した行の前に指定行数を表示 |
-C [数値] | 一致した行の前後に指定行数を表示 |
よく使うgrepコマンド例
・大文字・小文字を無視して検索
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」
- 任意の1文字
gr.p
:「g」「r」「任意の1文字」「p」
- 繰り返し
lo+g
:「l」「o」が1回以上続き「g」
拡張正規表現を使う場合は-E
オプションを付けます。
よくあるgrepの活用シーン
- ログファイルからエラー行のみ抽出
- 大規模プロジェクトで特定の関数やキーワードを横断検索
- 設定ファイルから特定の設定値を探す
- 複数の条件でフィルタリング
grepと組み合わせて使うコマンド
- パイプ(|)との併用
cat access.log | grep "404"
- findコマンドと連携
find . -name "*.log" | xargs grep "error"
- sortやuniqと組み合わせて集計
grep "error" *.log | sort | uniq -c
よくあるトラブルと対策
- バイナリファイルを検索してしまう
→-I
オプションでバイナリファイルを無視 - 大量の出力で見逃しが発生
→less
やmore
と組み合わせて閲覧
まとめ
grepコマンドはシンプルながら非常に強力な検索ツールです。オプションや正規表現を活用することで、日々の業務効率を大きく向上させることができます。Linux作業の必須コマンドとして、ぜひ使いこなしてみてください。
コメント