連載
【 grep 】コマンド――特定の文字を含む行を抽出する:Linux基本コマンドTips(9)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「grep」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、指定した文字が含まれている行だけを抽出する「grep」コマンドです。
grepコマンドとは?
「grep」は、ファイルの中で「文字列(パターン)」が含まれている行を表示するコマンドです。検索対象には、複数のファイルやディレクトリを指定できます。
ファイルを指定しなかった場合は、標準入力から読み込みます。パイプ(|)と組み合わせて、他のコマンドの出力結果から必要な箇所だけを絞り込んで表示する際によく使われます。
- [参考記事]パイプとリダイレクトでコマンドを組み合わせて実行しよう(連載:“応用力”をつけるためのLinux再入門 第6回)
grepコマンドの主なオプション
grepコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-e 検索パターン | --regexp=パターン | 検索パターンを指定する |
-G | --basic-regexp | 検索に基本正規表現を使う |
-E | --extended-regexp | 検索に拡張正規表現を使う |
-P | --perl-regexp | 検索にPerl正規表現を使う |
-f ファイル | --file=ファイル | ファイルに書かれているパターンを検索する |
-i | --ignore-case | 大文字と小文字を区別しない |
-w | --word-regexp | 単語全体でパターンと一致するものを検索する(「単語単位で検索する」を参照) |
-x | --line-regexp | 行全体がパターンと一致するものを検索する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-v | --invert-match | パターンに一致しない行を表示する |
-s | --no-messages | エラーメッセージを表示しない |
-q | --quiet --silent |
結果を表示しない(主にシェルスクリプトなどで判定用に使う) |
-L | --files-without-match | 一致するものが含まれていないファイルのファイル名のみ表示する |
-l | --files-with-matches | 一致するものが含まれているファイルのファイル名のみ表示する |
-c | --count | 一致するものが含まれている回数のみ表示 |
-m 回数 | --max-count=回数 | パターンが指定した回数に達したら処理を終了する |
-o | --only-matching | 一致した箇所だけを表示する(通常は行単位で表示) |
-n | --line-number | 行番号を併せて表示する(「行番号付きで表示する」を参照) |
-b | --byte-offset | パターンが何文字目にあるかを併せて表示する |
-H | --with-filename | ファイル名を併せて表示する |
-h | --no-filename | ファイル名を表示しない(複数ファイル指定時) |
--color=WHEN | 見つかったパターンを目立たせる(WHEN部分にはalways、never、autoを指定) | |
-B 行数 | --before-context=行数 | 一致した行の前の行も表示する(「前後の行も表示する」を参照) |
-A 行数 | --after-context=行数 | 一致した行の後の行も表示する(「前後の行も表示する」を参照) |
-C 行数,-行数 | --context=行数 | 一致した行の前後の行も表示する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-d ACTION | --directories=ACTION | 検索対象にディレクトリを指定した場合の動作(ACTION部分にはread、recurse、skipを指定) |
-r | --recursive | ディレクトリを指定した場合はサブディレクトリ内のファイルも含めて検索する(--directories=recurse相当) |
-R | --dereference-recursive | サブディレクトリも含めて検索、さらにシンボリックリンクの先も対象とする |
--include=パターン | パターンにマッチするファイルだけを対象とする | |
--exclude=パターン | パターンにマッチするファイルは検索対象から除外する | |
--exclude-from=ファイル | 対象から除外するファイル名のパターンをファイルから読み込む | |
--exclude-dir=パターン | パターンにマッチするディレクトリは検索対象から除外する |
コマンドの実行結果から必要な箇所だけを抽出する
Copyright © ITmedia, Inc. All Rights Reserved.