Grep

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

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

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

 基本構文 
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

 移植 
テキストから文字列を検索するプログラムとして、 用に、有志により、grepWinhttps://github.com/stefankueng/grepWinとしてGUI付きで移植された。

 参考文献 

脚注

 関連項目 
フィルタ
find
agrep

 外部リンク 
（英語）
grep(1) -  JMプロジェクトによる日本語のマニュアルページ
grep(1) - （ リファレンス・マニュアル）
grep(1) - （HP-UX リファレンス）

Category:標準UNIXプログラム