【发布时间】:2010-11-28 05:34:58
【问题描述】:
“awk:未定义函数systime。”
但是 systime 是一个内置命令
【问题讨论】:
-
你能告诉我们你正在使用的整个命令吗?使用如此有限的信息很难判断您在寻找什么。谢谢!
标签: unix shell scripting sed awk
“awk:未定义函数systime。”
但是 systime 是一个内置命令
【问题讨论】:
标签: unix shell scripting sed 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
【讨论】:
在 Solaris 上,/usr/bin/awk 默认情况下是指向 /usr/bin/oawk 的链接,它不会将 systime 识别为内置(或第 7 版 AWK 上的许多其他扩展)。要么将/usr/bin/awk 重新链接到/usr/bin/nawk,要么直接使用nawk,或者安装并使用GNU Awk (gawk)。
HP-UX、AIX 等其他 Unix 系统可能存在类似问题。 MacOS X(以及推断的 BSD)安装了一个非 GNU、非扩展版本的 awk(感谢您的更正,DMcKee)。 Linux 没有;它使用 GNU Awk 作为主要/唯一的awk。当然,GNU Awk 可以很容易地安装在任何这些系统上。
【讨论】:
这是我为获取时间戳所做的操作
nawk '{system("date +%Y-%m-%d %H:%M:%S|tr -d \"\n\"");print" " $0 } '
【讨论】: