目次
概要
Linux の grep コマンドは、指定したパターンに一致するテキストを検索するための強力なツールです。
本記事では、 grep コマンドの使い方について詳しく解説します。
基本的な使い方
grep [OPTION] PATTERNS [FILE]
標準入力からパターンを検索する
標準入力からデータを受け取り、指定したパターンを検索します。
これは、パイプ (|) を使用して他のコマンドの出力をgrepコマンドに渡す場合に便利です。
echo "Hello, World!" | grep "Hello"
この例では、echoコマンドで出力された文字列 “Hello, World!” から “Hello” というパターンを検索します。
1 つのテキストファイルからパターンを検索する
特定のテキストファイル内で指定したパターンを検索します。
grep "pattern" sample.txt
この例では、sample.txtファイル内で “pattern” という文字列を含む行を検索します。
複数のテキストファイルからパターンを検索する
複数のテキストファイル内で指定したパターンを検索します。
grep "pattern" file1.txt file2.txt
この例では、file1.txt と file2.txt の両方のファイル内で “pattern” という文字列を含む行を検索します。
現在のディレクトリから再帰的にファイルを確認し、パターンを検索する
現在のディレクトリおよびそのサブディレクトリ内のすべてのファイルを再帰的に検索し、指定したパターンを見つけます。
grep -r "pattern" .
この例では、現在のディレクトリ (.) およびそのサブディレクトリ内のすべてのファイルから “pattern” という文字列を含む行を再帰的に検索します。
オプションの一覧
パターンを指定する
| オプション | 説明 |
|---|---|
-E, --extended-regexp |
拡張正規表現を使用 |
-F, --fixed-strings |
固定文字列を使用 |
-G, --basic-regexp |
基本正規表現を使用 |
-P, --perl-regexp |
Perl の正規表現を使用 |
-e, --regexp=PATTERNS |
PATTERNS を使用してマッチング |
-f, --file=FILE |
FILE から PATTERNS を読み込む |
-i, --ignore-case |
大文字小文字を区別しない |
--no-ignore-case |
大文字小文字を区別する (デフォルト) |
-w, --word-regexp |
単語全体でマッチ |
-x, --line-regexp |
行全体でマッチ |
-z, --null-data |
ヌル文字を行の終わりとして解釈する |
-v, --invert-match |
一致しない行を選択する |
出力に関するオプション
| オプション | 説明 |
|---|---|
-m, --max-count=NUM |
NUM 行一致した場合中断する |
-b, --byte-offset |
出力行と併せてバイトオフセットを表示する |
-n, --line-number |
出力行と併せて行番号を表示する |
--line-buffered |
行ごとに出力をフラッシュする |
-H, --with-filename |
出力行と併せてファイル名を表示する |
-h, --no-filename |
出力の先頭にファイル名を付けない |
--label=LABEL |
標準入力のファイル名の接頭辞として LABEL を使用する |
-o, --only-matching |
一致した部分のみを表示する |
-q, --quiet, --silent |
通常の出力を抑制する |
--binary-files=TYPE |
バイナリファイルを TYPE として扱う (binary, text, without-match) |
-a, --text |
–binary-files=text と等価 |
-I |
–binary-files=without-match と等価 |
-d, --directories=ACTION |
ディレクトリの扱い方を指定する (read, recurse, skip) |
-D, --devices=ACTION |
デバイス、FIFO、ソケットの扱い方を指定する (read, skip) |
-r, --recursive |
–directories=recurse と等価 |
-R, --dereference-recursive |
–directories=recurse だがシンボリックリンクを解決する |
--include=GLOB |
GLOB に一致するファイルのみ検索する |
--exclude=GLOB |
GLOB に一致するファイルをスキップする |
--exclude-from=FILE |
FILE に記載されたファイルパターンに一致するファイルをスキップする |
--exclude-dir=GLOB |
GLOB に一致するディレクトリをスキップする |
-L, --files-without-match |
PATTERN に一致しない FILE の名前のみ表示する |
-l, --files-with-matches |
PATTERN に一致する FILE の名前のみ表示する |
-c, --count |
FILE ごとに一致した行数のみ表示する |
-T, --initial-tab |
タブを使用して整列する |
-Z, --null |
FILE の名前を表示した後に値がヌル文字を出力する |
-s, --no-messages |
エラーメッセージを抑止する |
前後の表示に関するオプション
| オプション | 説明 |
|---|---|
-B, --before-context=NUM |
一致した前の NUM 行を表示する |
-A, --after-context=NUM |
一致した後の NUM 行を表示する |
-C, --context=NUM |
一致した前後 NUM 行を表示する |
-NUM |
–context=NUM と同じ |
--group-separator=SEP |
一致した行の間に SEP を挿入する |
--no-group-separator |
一致した行の間に区切りを挿入しない |
--color[=WHEN], --colour[=WHEN] |
一致した部分をハイライト表示する (always, never, auto) |
-U, --binary |
行末の CR 文字を取り除かない |

コメント