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.