【決定版】Linux テキスト検索 grepコマンド徹底まとめ

この記事は約3分で読めます。
スポンサーリンク

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オプションでバイナリファイルを無視
  • 大量の出力で見逃しが発生
    → lessmoreと組み合わせて閲覧

まとめ

grepコマンドはシンプルながら非常に強力な検索ツールです。オプションや正規表現を活用することで、日々の業務効率を大きく向上させることができます。Linux作業の必須コマンドとして、ぜひ使いこなしてみてください。

コメント

タイトルとURLをコピーしました