Looking for grep Answers? Try Ask4KnowledgeBase
Looking for grep Keywords? Try Ask4Keywords

grepgrep、egrep、fgrep、pgrepの違い。


前書き

grepegrepfgreprgreppgrep - Unixライクなオペレーティングシステムのコマンドで、パターンに一致する行を出力します。 grepは指定されたPATTERNとの一致を含む行について、指定された入力FILEを検索します。デフォルトでは、一致する行が出力されます。さらに、変種プログラムegrepfgrep 、およびrgrepは、それぞれgrep -Egrep -F 、およびgrep -rと同じです。これらのバリアントは廃止予定ですが、下位互換性のために提供されています。

構文

  • grep [OPTIONS] PATTERN [FILE...]

  • grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]

パラメーター

シンボル 詳細基本正規表現(BRE)
^ サーカンフレックスは、行の先頭に一致するために使用されます。
$ 行の終わりに一致するために使用されます。
. 改行以外の文字にマッチします。
[] 角括弧の中の一文字にマッチします。 ^内部がある場合は、括弧内の文字以外は一致します。
\ 英数字以外の文字のいずれかが引用される前に。
* シンボルは前の文字または部分式と0回、1回以上一致します。
\1 後方参照1-9は、対応するグループによって正確なテキストと一致する。
\{m,n\} 上記の要素を少なくともm回、 n以下と一致させます。
\| foo\|bar fooまたはbarと一致します。
\? {0,1}の略
\+ {1、}の短縮形)は、先行する文字または部分表現と最大で1回、または少なくとも1回一致します。
\n 改行にマッチし、 \tはタブに一致します。
\w 任意の単語構成要素に一致し、\ Wは単語構成要素でない文字に一致します。
\<\> 空の文字列は単語の先頭または末尾にのみ一致する
\b どちらかに一致し、 \ Bは\ bと一致します。
シンボル 詳細拡張正規表現(ERE)
^ 初めにのみ一致する
$ 行の最後でのみ一致します。
. 任意の文字(または改行を除く任意の文字)に一致します。
[…] 角括弧(文字セット)内にリストされている任意の文字にマッチします。最初の^を追加し、BREのような範囲の作業を行います(上記参照)。
(…) *または\ DIGIT置換で使用するための構文グループ。
\| 交替のために: foo | bar fooまたはbar一致します。
* 直前の文字または部分式に何度もマッチします:0,1回以上
+ 1文字前の文字と一致します。
? 先行する文字と0または1回一致します。
\ 円記号が英数字でない場合、バックスラッシュは次の文字を引用符で囲みます。
{m,n} mとnの間の前の文字または部分式に一致します(いくつかの実装ではありません)。 nまたはmは省略することができ、 {m}は正確にmを意味します

備考

fgrepは、「固定文字列の正規表現の印刷」を表します。 fgrepgrep -Fと同じです。このコマンドはより速いgrepであり、grepとして動作しますが、正規表現メタ文字は特別であると認識しません。複雑なパターンではなく単純な文字列しか処理しないため、検索がより速く完了します。


pgrepは、 "Process-ID Global Regular Expressions Print"の略語です。 pgrepは、現在実行中のプロセスを調べ、選択基準に一致するプロセスIDをstdoutに一覧表示します。 pgrepは、プロセスのプロセスID整数を知りたいときに便利です。

グレープ egrep(grep -E) fgrep(grep -F) pgrep
基本正規表現(BRE) 拡張正規表現(ERE) 文字列のみを検索する名前でプロセスを検索する

詳細および参照情報については、次のリンクをご利用ください。

grep、egrepとfgrepの違いは何ですか? UnixとLinuxのStackExchange

なぜ私の正規表現はXでは使えますが、Yでは動作しませんか? UnixとLinuxのStackExchange

grep、pgrep、egrep、fgrepの違いは何ですか?スーパーユーザー

grep、egrep、fgrep、pgrepの違い。 関連する例