题
" awk:未定义函数systime。“
但是systime是一个内置命令
解决方案
在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可以很容易地安装在任何这些系统上。
其他提示
似乎是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" " <*> } '
不隶属于 StackOverflow