首页 > 解决方案 > 更改文件linux中的日期格式

问题描述

我有一个 csv 文件。我需要更改文件内数据中的日期格式。

ABCD,1234,01022019

我尝试了以下方法:

awk -F ',' '{printf("%s,%s,",$1,$2);system("date -d "$3" +%Y-%m-%d");}' new

我需要更改该文件中的日期格式,而不是写入另一个文件。

标签: linuxawk

解决方案


假设您的意思是要更改源文件以使这些日期具有yyyy-mm-dd格式,您可以单独执行此操作awk

awk -F, '{$3 = substr($3,5,4)"-"substr($3,3,2)"-"substr($3,1,2) ; print}' inFile >outFile

然后,您可以在复制回原始文件之前检查以确保行数相同,例如:

[[ $(wc -l <<inFile) -eq $(wc -l <<outFile) ]] && mv outFile inFile

推荐阅读