grep

作成日 : 2010-06-13
最終更新日 :

grep とは、テキストファイルを指定してそのファイルの中の文字列を検索するコマンドである。 grep という名称は、ラインエディタ ed のコマンド g/re/p に由来する。 その意味は「global regular expression print(ファイル全体から/正規表現に一致する行を/表示する)」で略号になっている。

単独での grep

オプションの説明

-i : 大文字・小文字の区別を無視する -c : 行数を表示する

役に立つ grep

grep は単独ではもちろん、他のコマンドとの合わせ技でさらに力を発揮する。

実例1: xargs との合わせ技(1)

xargs, find コマンドと合わせて、 あるディレクトリからサブディレクトリを渡り歩いてすべての html ファイルをみつけ、 その中から特定の単語があるかを調べる、というときに使える。

$ find . -name \*html -print | xargs grep "hogehoge"

実例2: xargs との合わせ技(2)

実例1では grep をパイプの後段で渡していたが、パイプの前段で使う例を挙げる。 "hogehoge"が含まれていないファイルにそれぞれに関して、wc を行う。

$ grep -L "hogehoge" *.html | xargs wc

grep の -L オプションは、 hogehoge が出てこないファイルを一覧表示する、 という意味である。

Windows では

Windows では、 GNU utilities for Win32 がある。なお残念ながらNT 版 UNIX-like toolsでは、 いくつか実装されていないオプションがある (egrep における -L など)。

grep 4兄弟

grep の働きをするコマンドには、ほかにも egrep や fgrep、rgrep がある。 手元の Ubuntu 20.04 の man ページには、これらはそれぞれ grep -E 、grep -F 、grep -r と同じである、 と解説されている。

まりんきょ学問所UNIX 手習い > grep


MARUYAMA Satosi