トップQs
タイムライン
チャット
視点
Grep
ウィキペディアから
Remove ads
grep
(グレップ、グレプ)は、UNIXおよびUnixオペレーティングシステムにおけるコマンドであり、テキストファイルなどプレーンテキスト形式のデータから、指定した正規表現に一致する特定の文字列を含む行を検索して標準出力に書き出す。
概要
grep
の名の由来は、ラインエディタedのコマンド g/re/p
である。その意味するところは「global regular expression print(ファイル全体から/正規表現に一致する行を/表示する)」で略号になっている[1]。
姉妹コマンドとして、正規表現ではなくリテラル(即値文字列)のみを扱う高速な fgrep
[2]、拡張正規表現が使える egrep
[3] がある。POSIX では fgrep
、egrep
を旧形式としていて、それぞれ grep -F
、grep -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。
脚注
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads