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.