0

我有一个 csv 文件,内容如下:

"Name","Payment",...,"DATE"
"Mike","40",...,"12252012"
"Jack","55",...,"01162013"
...

该文件包含大约数千个此类列表。并且有些字段的值可能是 8 位或更长的数字。有一件事是肯定的:DATE 字段是最后一列。

如何将其中的 DATE 列从 MMDDYYYY 更改为 YYYYMMDD 格式?

在 Korn Shell 中更好。

谢谢。

4

1 回答 1

2

编辑:如果日期字段始终是最后一个,您可以使用:

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
于 2013-03-12T20:03:29.753 回答