我正在使用Sun OS 5.10 并使用nawk从csv文件中提取字段。 csv的第一列是以毫秒为单位的时间,我需要将其转换为Date,然后将其保存在另一个csv文件中。
这是处理此任务的命令
nawk 'BEGIN {FS = ","}; NR>1 split($42,a,"|") {print $1 "," $46 "," $48 ","
$47 "," null "," null "," a[2] "," $6 "," $49 "," $7 "," $8 ","}' ttt.csv >
tttn.csv
我该如何处理这项任务?
答案 0 :(得分:0)
那些不是毫秒 - 它们是自1970年1月1日纪元以来的秒数。
这有帮助吗?我更改了第一个字段($1
)的值,然后使用修改后的字段打印该行:
awk '{$1=strftime("%m/%d/%Y, %r",int($1))}1' YourFile
03/26/2018, 07:04:47 pm field2 field3
YourFile
包含:
1522087487.9876 field2 field3
如果要舍入到最接近的秒,您可能需要:
int($1+0.5)
在strftime()
函数中。
如果您的nawk
没有strftime()
,并且Solaris上没有其他awk
可用,例如/usr/xpg4/awk
等等,那么我们可能需要提出一个Perl解决方案 - 就这么说吧!