Почему команда работает только в 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
Я не могу понять причину, кто-нибудь может дать какие-либо подсказки?