Como é frequentemente o caso no Solaris, /usr/bin/egrep
é uma implementação legada que não é compatível com POSIX, enquanto /usr/xpg4/bin/egrep
é uma implementação compatível com POSIX e tem pouco ou nada além de POSIX. A menos que você esteja executando aplicativos do Solaris legados nos dias anteriores ao POSIX, certifique-se de que /usr/xpg4/bin
esteja antes de /usr/bin
em seu $PATH
.
As ferramentas GNU (que você está acostumado no Linux) muitas vezes têm muitos recursos além do que o POSIX exige. Se você precisar de portabilidade, atenha-se ao POSIX. POSIX não define egrep
; é um sinônimo generalizado de grep -E
, ou seja, grep
com sintaxe de expressão regular estendida .
O /usr/bin/egrep
do Solaris não suporta {…}
contagens de ocorrências. Você está apenas usando {1}
aqui, o que não tem efeito, então solte-o.
Nenhuma implementação de egrep
ou grep -E
no Solaris oferece suporte a escapes de contrabarra para caracteres de controle. Essa é uma extensão do GNU. POSIX deixa indefinido o backlash-letter. Use a classe [:space:]
em vez de \t\n\v\f\r
.
LC_CTYPE=C grep -Ev '^[ ]*([[:alnum:][:space:]]*|\[[_[:alnum:][:space:]]*(=[[:alnum:][:space:]]*)?\])[ ]*$' file1