我有 .csv 文件,其中包含如下行:
xxxx,xxxxxx,Sep 1, 2015 21:32:15.xxxxxxxxx WEST
xxxx,xxxxxx,Sep 28, 2015 23:46:16.xxxxxxxxx WEST
xxxx,xxxxxx,Sep 30, 2015 21:23:17.xxxxxxxxx WEST
我需要将所有日期和时间更改为:
xxxx,xxxxxx,2015-09-01,21:32:15
xxxx,xxxxxx,2015-09-28,23:46:16
xxxx,xxxxxx,2015-09-30,21:23:17
我认为使用 awk 和 date 是可能的,但直到现在都没有任何效果。
最佳答案
$ cat tst.awk
BEGIN{ FS=OFS=","; mths="JanFebMarAprMayJunJulAugSepOctNovDec" }
{
split($3,mthDay,/ +/)
split($4,yrTime,/[ .]/)
$3 = sprintf("%04d-%02d-%02d", yrTime[2], (match(mths,mthDay[1])+2)/3, mthDay[2])
$4 = yrTime[3]
print
}
$ awk -f tst.awk file
xxxx,xxxxxx,2015-09-01,21:32:15
xxxx,xxxxxx,2015-09-28,23:46:16
xxxx,xxxxxx,2015-09-30,21:23:17
关于linux - 在 .csv 中编辑带日期的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32868621/