次の違いがわかる覚えやすい経験則がありますか?
egrep
zgrep
grep
私のコンピュータに何がインストールされているか知っていますか?
(次のような内容もあるようです。「GNU grepがインストールされていれば…、そうでなければ…」)
答え1
zgrep
通常、圧縮ファイル(認識された圧縮形式を使用)で圧縮される同伴スクリプトgzip
(以下のStephen Kittの説明を参照)。これはgrep
gzip
z
ジip(pkzip圧縮アーカイブ形式ではなくファイル圧縮/圧縮用)。
egrep
は1970年代後半のUnix V7で導入されたコマンドで、以前のコマンド(それ自体は古代テキストエディタのコマンドをgrep
実装する別のコマンド)に比べて新しい正規表現アルゴリズムと構文を持ちます。これはg/re/p
ed
grep
金利代わりに拡張正規表現(ERE)基本正規表現grep
(BRE)は/ / sed
/と理解されていますed
。vi
\{
そして他の演算子は\<
後でいくつかの実装に追加されましたが、grep
ある点ではもはやegrep
貢献しませんでした。grep
拡大する比較するegrep
。
1990年代初頭、POSIXは単一のコマンド(タスクの実行を意味する)にegrep
統合し、EREの演算子をREの演算子と同じにしようとしました(したがって、以前のバージョンと互換性がありません)。また、オプションを指定します。grep
grep -E
egrep
{min,max}
\{min,max\}
grep
egrep
-F
F固定文字列ユーティリティを検索して置き換えますfgrep
。
今日はegrep
標準コマンドではありませんfgrep
。ほとんどのシステムにはオペレータがいますが、一部の実装ではオペレータを{min,max}
識別でき、一部の実装ではそうではありません。
grep
そしてgrep -E
それは標準です。一部の実装には、PCRE(または同様、PCREライブラリに付属のコマンドを参照)など、より多様なgrep
正規表現構文を認識するための追加のスイッチがあります。grep -P
perl
pcregrep
grep -X
改善する正規表現...
サポートされるキャリアのリストはgrep
システムによって異なります。grep -E
移植性のため、POSIX 指定リストに制限されます。
SolarisではPOSIX/usr/xpg4/bin/grep
と/bin
互換性がありません。
さまざまな圧縮ライブラリ/ツールが、およびスクリプトをzgrep
提供bzgrep
しxzgrep
ますが、標準はありません。
POSIXで指定した唯一のコンプレッサーは次のとおりです。compress
/uncompress
これは、もはや誰も使用しなくなった1980年代初頭の古い圧縮形式です。
gzip
(GNU zip
)今日でもまだ使用されており、ほとんどgzip
のシステム(GNUの実装または複製)で見つけることができる別の古代圧縮形式を理解しています。したがって、次のことができる必要があります。
gzip -d < file.gz | grep BRE
または:
gzip -d < file.gz | grep -E ERE
grep
gzip圧縮ファイルに変換します。適切なツールにアクセスできる限り、他の圧縮形式でも同じことができます。