Grep

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

概要

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

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


基本構文

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

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

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

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


オブション

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

grep -r パターン 検索ディレクトリ

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


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としてGUI付きで移植された。

参考文献

脚注

[脚注の使い方]
  1. ↑ 英: search globally in the file / each lines to which the regular expression matches / print them
  2. ↑ 英: fixed grep または fast grep
  3. ↑ 英: extended grep
  4. ↑ Linux Standard Base https://refspecs.linuxfoundation.org/lsb.shtml
  5. ↑ https://github.com/stefankueng/grepWin

関連項目

外部リンク