awk -F, '{"date -d \"$1\" +%s"|getline b;{print $1 "," b} }' test.csv
上面是我的awk command
,我想使用来自文件的输入并将其转换为毫秒。但是当我使用它时,它会以毫秒为单位显示当前日期转换,而不是从文件中转换特定输入。
这是我的文件数据; - test.csv
31-JAN-2012
06-JUL-2009
03-OCT-2011
03-OCT-2011
03-OCT-2011
03-OCT-2011
03-OCT-2011
答案 0 :(得分:2)
使用GNU mktime
中的非标准awk
函数:
BEGIN {
FS="-"
split("JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC", month)
for (i in month) {
month[month[i]]=i
}
}
{
print mktime($3" " month[$2] " "$1" 00 00 00") "000," $0
}
答案 1 :(得分:1)
首先,Provider
命令不支持毫秒,date
秒。如果您确定消费程序可以处理毫秒级的准确度,您可以简单地将+%s
添加到000
的结果中,以伪造该准确性。
正确的date +%
命令是:
awk
毫秒精度
awk -F, '{"date -d"$1" +%s"|getline b; print $1 "," b}' test.csv