awk + подходящий синтаксис для SUN Solaris и Linux - PullRequest
1 голос
/ 02 сентября 2010

нужна помощь по поводу

когда я запускаю следующую команду в linux, она нормально запускается

  awk -v NAME=MACHINE '$1 == NAME'  /etc/hosts 

но в SUN Solaris я получаю следующее:

 awk -v NAME=MACHINE '$1 == NAME'  /etc/hosts 
 awk: syntax error near line 1
 awk: bailing out near line 1

как соответствовать следующему синтаксису, чтобы соответствовать также SUN Solaris? или изменить, чтобы соответствовать как на Linux, так и на SUN Solaris

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

Solaris хорошо известен тем, что некоторые команды в / bin / usr / bin не совместимы с POSIX. Вместо этого они имеют дополнительные совместимые версии в / usr / xpg4 и аналогичные иерархии.

Таким образом, в Solaris вы можете использовать только:

/usr/xpg4/bin/awk -v NAME=MACHINE '$1 == NAME'  /etc/hosts 

Под Solaris 10 это работает.

0 голосов
/ 02 сентября 2010

простой способ - использовать nawk и синтаксис остальных

...