トップQs
タイムライン
チャット
視点

Grep

ウィキペディアから

Remove ads

grep(グレップ、グレプ)は、UNIXおよびUnixオペレーティングシステムにおけるコマンドであり、テキストファイルなどプレーンテキスト形式のデータから、指定した正規表現に一致する特定の文字列を含む行を検索して標準出力に書き出す。

概要

grep の名の由来は、ラインエディタedのコマンド g/re/p である。その意味するところは「global regular expression print(ファイル全体から/正規表現に一致する行を/表示する)」で略号になっている[1]

姉妹コマンドとして、正規表現ではなくリテラル(即値文字列)のみを扱う高速な fgrep[2]、拡張正規表現が使える egrep[3] がある。POSIX では fgrepegrep を旧形式としていて、それぞれ grep -Fgrep -E を使うことを標準としている。Linux Standard Baseでも指定コマンドになっている[4]


基本構文

grep コマンドの基本的構文は次のとおり。

grep オプション パターン 対象ファイル

対象ファイルは複数指定することもできる。

またパイプ|)を使い標準入力から検索することもできる。


オブション

オプションには次のようなものがある:

  • -E : 拡張正規表現を使用する。egrep コマンドと同じ動作をする。
  • -F : 正規表現ではなくリテラルを使用する。fgrep コマンドと同じ動作をする。
  • -i : アルファベットの大文字小文字の区別をしない。
  • -o: パターンに一致した箇所のみ出力する。
  • -v : パターンに一致しない行を出力する。
  • -r : 指定したディレクトリおよびその下位ディレクトリ内の全てのファイルを検索する。(「r」はread recursively(再帰的に読む)の略だとも) 次のような構文で使う。
grep -r パターン 検索ディレクトリ

検索ディレクトリ(検索対象ディレクトリ)は相対パスでも絶対パスでも指定できる。たとえば「.」(ドット)と書けば、カレントディレクトリおよびその下位ディレクトリから検索する。

  • -c: 行をそのまま出力するのではなく、パターンに一致した行数のみ出力する。(「c」はcount(カウント。数える)の頭文字)


AND検索やOR検索の場合

AND条件

複数のパターンをAND条件で、すなわち同時に含む行を検索したい場合、パイプ|)を使いgrepコマンドを連続させる方法がある。 たとえば「abc」という文字列および「xyz」という文字列の両方を含む行を検索したい場合は次のように書く方法がある。

grep abc example.txt | grep xyz
OR条件

複数のパターンをOR条件で、すなわちどちらかのパターンを含む行を検索したい場合はオプション「-e」を使えば良い。たとえば「abc」あるいは「xyz」のどちらかを含む行を検索する場合は次のように書ける。

grep -e abc -e xyz example.txt

移植

テキストから文字列を検索するプログラムとして、Microsoft Windows 用に、有志により、grepWin[5]としてGUI付きで移植された。

参考文献

  • Brian W. Kerninghanロブ・パイク『UNIXプログラミング環境』野中浩一訳、石田晴久監訳、アスキー出版局〈ASCII海外ブックス〉、1986年6月。ISBN 4-87148-351-7

脚注

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads