1

“awk:未定义函数 systime。”

但 systime 是一个内置命令

4

4 回答 4

5

在 Solaris/usr/bin/awk上,默认情况下是指向 的链接/usr/bin/oawk,它不被识别systime为内置(或第 7 版 AWK 上的许多其他扩展)。重新链接或直接使用/usr/bin/awk,或者安装 GNU Awk ( ) 并使用它。/usr/bin/nawknawkgawk

HP-UX、AIX 等其他 Unix 系统可能也有类似的问题。MacOS X(以及推断的 BSD)安装了一个非 GNU、非扩展版本awk(感谢 DMcKee 的更正)。Linux 没有;它使用 GNU Awk 作为 main/only awk。当然,GNU Awk 可以很容易地安装在任何这些系统上。

于 2009-09-14T18:56:13.920 回答
3

似乎是awk“风味”的问题。

GAWK (gnu awk) 包括 systime(),但您使用的版本可能不...

除非 systime 调用旨在跟踪 awk 脚本本身内的时间差,否则避免缺少 awk systime() 函数的技巧是将此系统变量的值作为 awk 命令行上的变量传递。

于 2009-09-14T18:30:59.743 回答
2

例如,在我的系统上都安装了gawkmawk

echo |mawk '{print systime()}'

产生:

mawk: line 2: function systime never defined

尽管

echo |gawk '{print systime()}'

产生:

1252953754
于 2009-09-14T18:42:53.040 回答
1

这是我为获取时间戳所做的工作

nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '
于 2014-07-10T11:14:26.780 回答