【发布时间】:2015-03-02 07:45:20
【问题描述】:
此 awk 脚本使用系统调用将秒转换为时间码。为什么不使用内置函数呢?出于便携性原因。这需要在 OS X Mavericks(GNU bash,版本 3.2.53,awk 版本 20070501)上工作,内置 strftime 函数不可用(据我所知)。
cat file
A 3000
B 3010
C 3020
我的脚本:
awk '{ printf "%s %s\n", system( "date -r " $2 " -j +%H:%M:%S" ), $1 }' file
返回这个
01:50:00
0 A
01:50:10
0 B
01:50:20
0 C
当我尝试在与时间码相同的行上打印第一条记录的值时,如下所示:
01:50:00 A
01:50:10 B
01:50:20 C
我做错了什么?
【问题讨论】:
-
如果
awk的所有版本都没有您需要的功能,也许您应该改用 Perl 或 Python(或类似的东西)。