awk 给出以下错误
“awk:函数 systime 未定义。”
但 systime 是一个内置命令
"awk: Function systime is not defined."
but systime is a built in command
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
“awk:函数 systime 未定义。”
但 systime 是一个内置命令
"awk: Function systime is not defined."
but systime is a built in command
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
在 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 可以轻松安装在任何这些系统上。On Solaris,
/usr/bin/awk
is by default a link to/usr/bin/oawk
, which does not recognizesystime
as a built in (or a lot of other extensions over the 7th Edition AWK). Either relink/usr/bin/awk
to/usr/bin/nawk
or usenawk
directly, or get GNU Awk (gawk
) installed and use that.Other Unix systems like HP-UX, AIX may have similar issues. MacOS X (and, by inference, BSD) install a non-GNU, non-extended version of
awk
(thanks for the correction, DMcKee). Linux does not; it uses GNU Awk as the main/onlyawk
. Of course, GNU Awk can easily be installed on any of these systems.似乎是 awk“风味”的问题。
GAWK (gnu awk) 包含 systime(),但也许您使用的版本不包含...
除非 systime 调用是为了跟踪 awk 脚本本身内的时间差异,这是避免缺少 awk systime() 的技巧功能是将这个系统变量的值作为 awk 命令行上的变量传递。
Seems to be a matter of awk "flavor".
GAWK (gnu awk) includes systime(), but maybe the version you are using does not...
Unless systime calls are meant to keep track of time differences within the awk script itself, a trick to circumvent the lack of awk systime() function would be to pass the value of this system variable as a variable on the awk command line.
例如,在我的系统上,同时安装了
gawk
和mawk
。产生:
同时
产生:
As an example, on my system both
gawk
andmawk
are installed.produces:
while
produces:
这是我为获取时间戳所做的事情
Here is what I did to get the time stamp