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