我有一个csv文件读取类似:
"Name","Payment",...,"DATE"
"Mike","40",...,"12252012"
"Jack","55",...,"01162013"
...
该文件包含大约数千个这样的列表。并且有一些字段的值可能是8位数或更长的数字。有一点是肯定的:DATE字段是最后一列。
如何将其中的DATE列从MMDDYYYY更改为YYYYMMDD格式?
Korn Shell更好。
感谢。
答案 0 :(得分: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