Não há apenas um awk
e vários lançamentos dele. Existem muitas implementações awk, cada uma com várias versões. Todos os Unices têm seu próprio conjunto de ferramentas que eles mantêm internamente e o software que vem com um Unix e que faz uso dessas ferramentas geralmente dependem daqueles que são a versão exata dessa mesma implementação.
Se você começar a substituir /usr/bin/awk
pelo GNU awk, como pode ser baixado do link , você terá problemas.
Alguns Unices fazem o pacote de versões alternativas ou de Software Livre de alguns dos utilitários padrão. Geralmente, eles fazem isso instalando-os em um local diferente ( /opt/gnu
, por exemplo, para ferramentas GNU) ou sob um nome diferente ( gawk
para o GNU awk). Se não, você pode baixá-los como fonte e criá-los e instalá-los em um local diferente ou com um nome diferente manualmente.
/usr/bin
e manter as versões modernas / padrão em outro lugar.
Esse é o caso do awk. /usr/bin/awk
no Solaris é baseado no awk original de 1979. awk foi reescrito em 1988 e chamado nawk
. Todas as implementações awk
modernas são baseadas nesse nawk
(como é o que a especificação POSIX awk
é baseada).
No Solaris, se você atualizar seu $PATH
para se colocar em um ambiente padrão / POSIX (que geralmente envolve colocando /usr/xpg4/bin
e / ou /usr/xpg6/bin
no início de $PATH
), então awk
será o padrão. Como alternativa, você pode chamar nawk
em vez de awk
.
É o mesmo para sh
, você pode usar /usr/xpg4/bin/sh
ou ksh
.
Em um sh padrão (ou seja, não /bin/sh
no Solaris), você também pode usar
command -p awk
Certifique-se de chamar o awk portátil em vez do antigo.