我有一个 csv 文件,内容如下:
"Name","Payment",...,"DATE"
"Mike","40",...,"12252012"
"Jack","55",...,"01162013"
...
该文件包含大约数千个此类列表。并且有些字段的值可能是 8 位或更长的数字。有一件事是肯定的:DATE 字段是最后一列。
如何将其中的 DATE 列从 MMDDYYYY 更改为 YYYYMMDD 格式?
在 Korn Shell 中更好。
谢谢。
我有一个 csv 文件,内容如下:
"Name","Payment",...,"DATE"
"Mike","40",...,"12252012"
"Jack","55",...,"01162013"
...
该文件包含大约数千个此类列表。并且有些字段的值可能是 8 位或更长的数字。有一件事是肯定的:DATE 字段是最后一列。
如何将其中的 DATE 列从 MMDDYYYY 更改为 YYYYMMDD 格式?
在 Korn Shell 中更好。
谢谢。
编辑:如果日期字段始终是最后一个,您可以使用:
cat file.csv | perl -pe 's/(.*,")(\d{2})(\d{2})(\d{4})"/$1$4$2$3"/'
或者
perl -p -i -e 's/(.*,")(\d{2})(\d{2})(\d{4})"/$1$4$2$3"/' file.csv
如果 CSV 只有一个字段包含八位或更多位:
使用 Perl:
cat file.csv | perl -pe 's/(\d\d)(\d\d)(\d\d\d\d)/$3$1$2/'
或更短(编辑文件到位):
perl -p -i -e 's/(\d{2})(\d{2})(\d{4})/$3$1$2/' file.csv