連載
» 2016年04月06日 05時00分 公開

Linux基本コマンドTips(9):【 grep 】コマンド――特定の文字を含む行を抽出する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「grep」コマンドです。

[西村めぐみ,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、指定した文字が含まれている行だけを抽出する「grep」コマンドです。

grepコマンドとは?

 「grep」は、ファイルの中で「文字列(パターン)」が含まれている行を表示するコマンドです。検索対象には、複数のファイルやディレクトリを指定できます。

 ファイルを指定しなかった場合は、標準入力から読み込みます。パイプ(|)と組み合わせて、他のコマンドの出力結果から必要な箇所だけを絞り込んで表示する際によく使われます。


grepコマンドの書式

grep [オプション] 検索パターン ファイル

コマンド | grep [オプション] 検索パターン

※[ ]は省略可能な引数を示しています



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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。