awk выдает следующую ошибку - PullRequest
       15

awk выдает следующую ошибку

1 голос
/ 14 сентября 2009

"awk: функция systime не определена."

но systime - это встроенная команда

Ответы [ 4 ]

5 голосов
/ 14 сентября 2009

В Solaris /usr/bin/awk по умолчанию является ссылкой на /usr/bin/oawk, которая не распознает systime как встроенную (или множество других расширений в 7-й редакции AWK). Либо заново связать /usr/bin/awk с /usr/bin/nawk, либо использовать nawk напрямую, либо установить GNU Awk (gawk) и использовать его.

Другие системы Unix, такие как HP-UX, AIX, могут иметь аналогичные проблемы. MacOS X (и, как следствие, BSD) устанавливает не GNU, не расширенную версию awk (спасибо за исправление, DMcKee). Linux нет; он использует GNU Awk в качестве основного / единственного awk. Конечно, GNU Awk можно легко установить на любую из этих систем.

3 голосов
/ 14 сентября 2009

Кажется, это вопрос awk "аромат".

GAWK (gnu awk) включает в себя systime (), но, возможно, используемая вами версия не ...

Если вызовы systime не предназначены для отслеживания разницы во времени внутри самого скрипта awk, хитрость для обхода недостатка функции awk systime () заключалась бы в передаче значения этой системной переменной в качестве переменной в командной строке awk. .

2 голосов
/ 14 сентября 2009

Например, в моей системе установлены gawk и mawk.

echo |mawk '{print systime()}'

производит:

mawk: line 2: function systime never defined

, а

echo |gawk '{print systime()}'

производит:

1252953754
1 голос
/ 10 июля 2014

Вот что я сделал, чтобы получить отметку времени

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...