在Mac OS X上使用Awk strftime

14

在我的 Mac(10.6)上,下面的命令会导致出现未定义函数错误:

$ awk 'BEGIN{now=strftime("%D", systime()); print now}'
awk: calling undefined function strftime
 source line number 1

在Red Hat系统上,我得到了预期的结果:

$ awk 'BEGIN{now=strftime("%D", systime()); print now}'
12/01/09

这里是怎么回事?

3个回答

19

strftime是GNU gawk的扩展。如果你想使用strftime,请在Mac上下载GNU gawk并安装。否则,还有其他工具如Perl/Python可供使用。检查一下你的Mac上是否有它们。


我使用MacPorts安装了gawk、mawk和nawk,但是我仍然遇到相同的错误。 - Jeremy White
sudo port install gawk 我可以确认gawk在正确的路径中,但找不到任何关于strftime的参考。 - Jeremy White
1
安装gawk后的正确语法是:gawk 'BEGIN{now=strftime("%D", systime()); print now}' - Jeremy White
我的教科书使用的是awk而不是gawk,所以我很困惑为什么它对我仍然不起作用。 - Jeremy White

12

使用Homebrew,然后只需运行brew install gawk


4
你依赖于awk扩展,该扩展在你的Red Hat系统中使用的awk变体(gawk、mawk、nawk等)中都存在。请参见标准Unix规范中的awk描述,了解awk的基本功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接