GNU @command{grep}を呼び出す,シェルコマンドの例は以下のようになり ます.
grep -i 'hello.*world' menu.h main.c
これは,`menu.h'と`main.c'で,文字列`world'が続く文字列 `hello'を含む,全ての行をリストアップします.これは,`.*'が, 行の0以上の文字にマッチするためです.See section 正規表現. `-i'オプションは,@command{grep}に大文字小文字を無視させ, `Hello, world!'にマッチさせます.そうしなければマッチしません. @command{grep}の呼び出し方の詳細は,See section @command{grep}の呼び出し.
以下に@command{grep}の使用法に関する一般的な質問と回答を記述します.
grep -l 'main' *.cカレントディレクトリで,内容に`main'があるCファイルの名前をリストアッ プします.
grep -r 'hello' /home/gigi`hello'を,ディレクトリ`/home/gigi'の下の,全てのファイルで検 索します.検索ファイルをもっと制御するために,@command{find}, @command{grep}と,@command{xargs}を使ってください.例えば,以下のコマン ドはCファイルのみを検索します.
find /home/gigi -name '*.c' -print | xargs grep 'hello' /dev/nullこれは,以下のコマンドとは異なります.
grep -r 'hello' *.cそれは単純に,現在のディレクトリのファイル名が`.c'で終るすべてのファ イルで`hello'を探します.ここでの@option{-r}は,再帰的が`.c'と いうファイルの一つがディレクトリであるという滅多に発生しない事象でのみ発 動するので,移植性のため不必要です.
grep -e '--cut here--' *`--cut here--'にマッチする全ての行を検索します.`-e'がない場合, @command{grep}は,`--cut here--'をオプションのリストとして,分割し ようとします.
grep -w 'hello' *単語全体で`hello'となるもののみを検索します.`Othello'にはマッ チしません.より制御するため,単語の最初と最後にマッチする,`\<'と `\>'を使ってください.例えば,以下のようにします.
grep 'hello\>' *`hello'で終る単語のみを検索するので,単語`Othello'にマッチしま す.
grep -C 2 'hello' *マッチした行の周りの文を,それぞれ2行出力します.
grep 'eli' /etc/passwd /dev/null以下を得るでしょう.
/etc/passwd:eli:DNGUTF58.IMe.:98:11:Eli Smith:/home/do/eli:/bin/bash
ps -ef | grep '[c]ron'パターンが角カッコなしで書かれている場合,@command{ps}出力行の @command{cron}だけでなく,@command{ps}出力の@command{grep}にもマッチしま す.プラットフォームによっては,@command{ps}の出力が画面の幅に制限されて いることに注意してください.@command{grep}には,利用可能なメモリ以外には, 行の長さの制限は全くありません.
grep 'paul' /etc/motd | grep 'franc,ois'`paul'と`franc,ois'の両方を含む全ての行を検索します.
cat /etc/passwd | grep 'alain' - /etc/motd
grep -w -e '\(.\)\(.\).\2\1' fileそれは,単語"radar"や"civic"にマッチします. Guglielmo Bondioniは,19文字までの長さのすべての回文を見つける,単一の 正規表現を提案しました.
egrep -e '^(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?)(.?).?\9\8\7\6\5\4\3\2\1$' fileこれはGNUの拡張正規表現の拡張機能を使用してなされていることに注意し てください.それは他の@command{grep}では移植性が無いでしょう.
/bin/echo "ba" | egrep '(a)\1|(b)\1'最初の交換で失敗し,最初のグループはマッチにならず,このため2番目の交換 でも失敗します.例えば,"aaba"にはマッチし,最初のグループはマッチに加わ り,2番目のマッチで再利用することが可能です.
global/regular expression/print g/re/p@command{fgrep}は修正された@command{grep}を意味し,@command{egrep}は拡張 された@command{grep}を意味します.
Go to the first, previous, next, last section, table of contents.