" 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" " <*> } '
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top