Почему команда работает только в gawk?

У меня есть 2 хоста: один работает Linuxв то время как другой OmniOS,

awk на Linux является gawk:

[root@localhost ~]# which awk
/bin/awk
[root@localhost ~]# ls -lt /bin/awk
lrwxrwxrwx. 1 root root 4 Jan 22  2014 /bin/awk -> gawk

И выполнение следующей команды в порядке:

[root@localhost  ~]# awk 'function print_name_and_age(name, age) { print name" is "age" old" } {print_name_and_age($1, $2)}'
Mark 12
Mark is 12 old

Я думаю awk на OmniOS является nawk, но не уверен:

root@localhost:/root# which awk
/usr/bin/awk
root@localhost:/root# ls -lt /usr/bin/awk
-r-xr-xr-x   2 root     bin        90664 Apr  3 01:17 /usr/bin/awk
root@localhost:/root# awk
awk: Usage: awk [-Fc] [-f source | 'cmds'] [files]

Но выполнение той же команды является ошибкой:

root@localhost:/root# awk 'function print_name_and_age(name, age) { print name" is "age" old" } {print_name_and_age($1, $2)}'
awk: syntax error near line 1
awk: bailing out near line 1

Я не могу понять причину, кто-нибудь может дать какие-либо подсказки?

0 ответов

Другие вопросы по тегам