zgrepとegrepとgrep

zgrepとegrepとgrep

次の違いがわかる覚えやすい経験則がありますか?

  • egrep

  • zgrep

  • grep

私のコンピュータに何がインストールされているか知っていますか?

(次のような内容もあるようです。「GNU grepがインストールされていれば…、そうでなければ…」)

答え1

zgrep通常、圧縮ファイル(認識された圧縮形式を使用)で圧縮される同伴スクリプトgzip(以下のStephen Kittの説明を参照)。これはgrepgzipzip(pkzip圧縮アーカイブ形式ではなくファイル圧縮/圧縮用)。

egrepは1970年代後半のUnix V7で導入されたコマンドで、以前のコマンド(それ自体は古代テキストエディタのコマンドをgrep実装する別のコマンド)に比べて新しい正規表現アルゴリズムと構文を持ちます。これはg/re/pedgrep金利代わりに拡張正規表現(ERE)基本正規表現grep(BRE)は/ / sed/と理解されていますedvi

\{そして他の演算子は\<後でいくつかの実装に追加されましたが、grepある点ではもはやegrep貢献しませんでした。grep拡大する比較するegrep

1990年代初頭、POSIXは単一のコマンド(タスクの実行を意味する)にegrep統合し、EREの演算子をREの演算子と同じにしようとしました(したがって、以前のバージョンと互換性がありません)。また、オプションを指定します。grepgrep -Eegrep{min,max}\{min,max\}grepegrep-FF固定文字列ユーティリティを検索して置き換えますfgrep

今日はegrep標準コマンドではありませんfgrep。ほとんどのシステムにはオペレータがいますが、一部の実装ではオペレータを{min,max}識別でき、一部の実装ではそうではありません。

grepそしてgrep -Eそれは標準です。一部の実装には、PCRE(または同様、PCREライブラリに付属のコマンドを参照)など、より多様なgrep正規表現構文を認識するための追加のスイッチがあります。grep -Pperlpcregrepgrep -X改善する正規表現...

サポートされるキャリアのリストはgrepシステムによって異なります。grep -E移植性のため、POSIX 指定リストに制限されます。

SolarisではPOSIX/usr/xpg4/bin/grep/bin互換性がありません。

さまざまな圧縮ライブラリ/ツールが、およびスクリプトをzgrep提供bzgrepxzgrepますが、標準はありません。

POSIXで指定した唯一のコンプレッサーは次のとおりです。compress/uncompressこれは、もはや誰も使用しなくなった1980年代初頭の古い圧縮形式です。

gzip(GNU zip)今日でもまだ使用されており、ほとんどgzipのシステム(GNUの実装または複製)で見つけることができる別の古代圧縮形式を理解しています。したがって、次のことができる必要があります。

gzip -d < file.gz | grep BRE

または:

gzip -d < file.gz | grep -E ERE

grepgzip圧縮ファイルに変換します。適切なツールにアクセスできる限り、他の圧縮形式でも同じことができます。

関連情報