zgrep
geralmente é um script enviado com gzip
(veja também o comentário de Stephen Kitt abaixo) que grep
s em arquivos compactados (com formatos de compactação que gzip
reconhece). O z
é para z ip (não para o formato de arquivo compactado pkzip, mas para compactação / compactação de arquivos).
egrep
foi um comando introduzido no Unix V7 no final dos anos 70 com um novo algoritmo e sintaxe regexp em comparação com o antigo grep
(ele próprio um comando autônomo para implementar o comando g/re/p
do antigo texto ed
editor). Esse é o grep
para os regexps xtended (ERE) de e , ao contrário dos regexps básicos (BRE) compreendidos por grep
/ sed
/ ed
/ vi
.
Operadores adicionais como \{
e \<
foram adicionados posteriormente a algumas implementações de grep
, mas não egrep
, tornando grep
em alguns aspectos mais estendidos do que egrep
.
No início dos anos 90, o POSIX tentou unificar egrep
e grep
em um único comando (onde grep -E
foi feito para fazer o que egrep
fez) e tornar o operador {min,max}
em ERE equivalente a \{min,max\}
em REs de grep
(portanto, não compatível com egrep
). Ele também especificou a opção -F
para a pesquisa f string ixed para substituir o utilitário fgrep
.
Hoje, egrep
não é um comando padrão (nem é fgrep
). Enquanto a maioria dos sistemas tem um, algumas implementações reconhecem o operador {min,max}
, outras não.
grep
e grep -E
são padrão. Algumas implementações de grep
têm comutadores extras para reconhecer sintaxes de regexp ainda mais diferentes, como grep -P
para PCRE (ou perl
, consulte também o comando pcregrep
fornecido com a biblioteca PCRE), grep -X
para aumentada regexps ...
E a lista de operadores suportados por grep
e grep -E
varia de um sistema para outro. Para portabilidade, restrinja a lista especificada por POSIX.
No Solaris, certifique-se de usar /usr/xpg4/bin/grep
. O em /bin
não é compatível com POSIX.
Várias bibliotecas / ferramentas de compactação fornecem com zgrep
, bzgrep
, xzgrep
scripts, nenhum dos quais padrão.
O único programa de compactação especificado pelo POSIX é compress
/ uncompress
que é para um antigo formato de compressão do início dos anos 80 que ninguém mais usa.
gzip
(GNU zip
) entende outro antigo formato de compactação que ainda está em uso atualmente e gzip
é encontrado na maioria dos sistemas (a implementação GNU ou um clone). Então você deve ser capaz de fazer:
gzip -d < file.gz | grep BRE
ou:
gzip -d < file.gz | grep -E ERE
para grep
em arquivos compactados por gzip. Você pode fazer o mesmo com qualquer outro formato de compactação, desde que tenha acesso à ferramenta correspondente.