“awk:未定义函数 systime。”
但 systime 是一个内置命令
在 Solaris/usr/bin/awk
上,默认情况下是指向 的链接/usr/bin/oawk
,它不被识别systime
为内置(或第 7 版 AWK 上的许多其他扩展)。重新链接或直接使用/usr/bin/awk
,或者安装 GNU Awk ( ) 并使用它。/usr/bin/nawk
nawk
gawk
HP-UX、AIX 等其他 Unix 系统可能也有类似的问题。MacOS X(以及推断的 BSD)安装了一个非 GNU、非扩展版本awk
(感谢 DMcKee 的更正)。Linux 没有;它使用 GNU Awk 作为 main/only awk
。当然,GNU Awk 可以很容易地安装在任何这些系统上。
似乎是awk“风味”的问题。
GAWK (gnu awk) 包括 systime(),但您使用的版本可能不...
除非 systime 调用旨在跟踪 awk 脚本本身内的时间差,否则避免缺少 awk systime() 函数的技巧是将此系统变量的值作为 awk 命令行上的变量传递。
例如,在我的系统上都安装了gawk
和mawk
。
echo |mawk '{print systime()}'
产生:
mawk: line 2: function systime never defined
尽管
echo |gawk '{print systime()}'
产生:
1252953754
这是我为获取时间戳所做的工作
nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '