grepコマンドの使い方まとめ|よく使う例・オプション・正規表現まで解説

  • URLをコピーしました!
目次

Linuxのgrepコマンドについて

grepコマンドは、テキストファイルや標準出力から特定のパターンを検索するためのコマンドです。
大量のログファイルから特定の文字列を抽出したり、
特定のパターンに一致する行のみを表示したりする際に非常に便利です。
grepコマンドはLinux管理やプログラミング作業で頻繁に利用されます。

📌 他のLinuxコマンドもまとめて確認したい方へ
ファイル操作・検索・テキスト処理など用途別に整理した総合まとめはこちら。
Linuxコマンド大全|カテゴリ別まとめ+コマンド詳細リンク集(チートシート付き)

grepコマンドの基本(まずこれだけ覚える)

grepコマンドは以下の形で使います。

grep "検索文字列" ファイル名

よく使う例:

grep "error" logfile.txt

→ errorを含む行を表示

grep -i "error" logfile.txt

→ 大文字小文字を無視して検索

grep -r "error" /var/log

→ ディレクトリ配下を検索

よく使うgrepオプション(用途別)

基本検索

  • -i:大文字小文字無視
  • -v:除外検索
  • -n:行番号表示

ファイル・ディレクトリ検索

  • -r:再帰検索
  • -l:ファイル名のみ表示

周辺表示

  • -A:後ろの行表示
  • -B:前の行表示
  • -C:前後表示

各オプションの詳細と使用例

基本的なgrepコマンド

ファイル内の特定の文字列を検索します。

使用例

$ grep "error" logfile.txt

表示結果logfile.txt内で”error”を含む行が表示されます。

-iオプション

大文字と小文字を区別せずに検索を行います。

使用例

$ grep -i "error" logfile.txt

表示結果: “error”や”Error”など、大小文字にかかわらず一致する行が表示されます。

-vオプション

指定したパターンに一致しない行を表示します。

使用例

$ grep -v "error" logfile.txt

表示結果: “error”を含まない行のみが表示されます。

-r または -R オプション

ディレクトリを再帰的に検索し、パターンに一致する行を表示します。

使用例

$ grep -r "error" /var/log/

表示結果/var/logディレクトリ内のすべてのファイルに対して、”error”を含む行が表示されます。

-lオプション

パターンに一致する行を含むファイル名のみを表示します。

使用例

$ grep -l "error" /var/log/*

表示結果: “error”を含むファイルの名前が一覧で表示されます。

-nオプション

一致した行の行番号も表示します。

使用例

$ grep -n "error" logfile.txt

表示結果: “error”を含む行と、その行番号が表示されます。

-cオプション

パターンに一致する行の総数を表示します。

使用例

$ grep -c "error" logfile.txt

表示結果: “logfile.txt”内で”error”を含む行数が表示されます。

-Aオプション

一致した行と、その後の指定行数を表示します。

使用例

$ grep -A 3 "error" logfile.txt

表示結果: “error”を含む行と、その後の3行が表示されます。

-Bオプション

一致した行と、その前の指定行数を表示します。

使用例

$ grep -B 2 "error" logfile.txt

表示結果: “error”を含む行と、その前の2行が表示されます。

-Cオプション

一致した行と、その前後の指定行数を表示します。

使用例

$ grep -C 2 "error" logfile.txt

表示結果: “error”を含む行と、その前後2行が表示されます。

--colorオプション

一致した部分を色付きで表示します。

使用例

$ grep --color "error" logfile.txt

表示結果: “error”に一致する部分が色付きで強調表示され、視認性が向上します。

実務でよく使うgrep例

ps aux | grep nginx

→ プロセス確認

grep -i "fail" /var/log/messages

→ エラー調査

grep -r "password" /etc

→ 設定確認

grepと正規表現(重要)

記号意味
.任意の1文字
*繰り返し
^行の先頭
$行の末尾

例:

grep "^error" file

→ errorで始まる行

注意点

  • grepは正規表現を使って高度なパターン検索が可能です。ただし、エスケープ文字などが必要になる場合もあります。
  • grepの正規表現は基本的にはPOSIX準拠ですが、GNUバージョンのgrepでは拡張正規表現(-Eオプション)も使用可能です。

LPIC Lv1準拠!Linuxコマンド演習(基礎編)Vol.1【全10問】

厳選された100問のコマンド問題から、毎回ランダムで10問を出題。
挑戦するたびに新しい問題に出会えるので、真の実力が試されます。

1 / 10

ディスクの空き容量を人間が見やすい単位(GB, MBなど)で表示するdfのオプションは?

2 / 10

ファイルのアクセス権(パーミッション)を「rwxr-xr-x」にする数値指定のchmodコマンドは?

3 / 10

ファイルのiノード番号を表示するためのlsコマンドのオプションは?

4 / 10

テキストファイル内の文字列を置換したり、行を削除したりするストリームエディタは?

5 / 10

ファイル名の末尾に「/」や「*」を付けてファイルの種類を判別しやすくするlsのオプションは?

6 / 10

指定したコマンドを5秒おきに繰り返し実行し、画面を更新するコマンドは?

7 / 10

テキストファイルの中身を比較し、差分を表示するコマンドは?

8 / 10

現在のディレクトリ配下にあるファイルの合計サイズを計算して表示するコマンドは?

9 / 10

巨大なファイルを指定したサイズや行数で分割するコマンドは?

10 / 10

ファイルやディレクトリを削除する際、確認メッセージを出さずに強制的に削除するオプションは?

あなたのスコアは

平均スコアは 63%

0%

目次