我正在使用以下内容来浏览 CSV 文件,并用 unixtime 等效项替换第二列中的所有日期。
gawk -F',' -v OFS=',' '$2 {cmd="date -d \""$2"\" +%s"; cmd | getline $2; close(cmd)} 1' C.csv > D.csv
然而,我得到的是:
date: invalid date ‘21-07-2019 13:08’
date: invalid date ‘21-07-2019 14:59’
date: invalid date ‘20-07-2019 13:03’
date: invalid date ‘20-07-2019 14:44’
date: invalid date ‘20-07-2019 15:19’
date: invalid date ‘20-07-2019 13:36’
date: invalid date ‘21-07-2019 11:37’
date: invalid date ‘20-07-2019 14:51’
日期有效 - 为什么它不被认可?
它适用于:
date -d '07/22/2019 11:37'
另一个问题是该列具有混合日期类型,即它具有上述格式和一些格式 2019-07-18T14:15:00.000+02:00
谢谢
由于您有混合日期格式,因此必须将dd-mm-yyyy HH:MM
格式转换为mm-dd-yyyy HH:MM
,您可以尝试使用以下方法:
/* 日期.awk */
{
if($2 ~ / /) {
split($2,datetime, / /)
dt = date[1]
split(dt, dts, /-/)
$2 = dts[2]"-"dts[1]"-"dts[3]" "date[2]
}
}
{cmd = "date -d \""$2"\" \"+%Y-%m-%d %I:%M:%S %p\""}{ cmd|getline D; close(cmd); $2=D}1
然后,
awk -v FS=, -v OFS=, -f date.awk C.csv
应该给你你需要的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句