对于linux中的大文件,将d.m.Y h:m:s转换为Y-d-m h:m:s

对于linux中的大文件,将d.m.Y h:m:s转换为Y-d-m h:m:s,linux,Linux,对于linux中的大文件,是否可以将d.m.Y h:m:s转换为Y-d-m h:m:s 样本数据 "30.07.2016 00:00:00",DN123,PAPN,PAPN,TEST,918945, 要转换为 "2016-07-30 00:00:00",DN123,PAPN,PAPN,TEST,918945, 假设您的文件名为A.csv 使用以下命令: awk -F"," '{print "\""substr($1,08,4)"-"substr($1,5,2)"-"substr($1,2,

对于linux中的大文件,是否可以将d.m.Y h:m:s转换为Y-d-m h:m:s

样本数据

"30.07.2016 00:00:00",DN123,PAPN,PAPN,TEST,918945,
要转换为

"2016-07-30 00:00:00",DN123,PAPN,PAPN,TEST,918945,

假设您的文件名为
A.csv

使用以下命令:

awk -F","  '{print "\""substr($1,08,4)"-"substr($1,5,2)"-"substr($1,2,2)substr($1,12,9)"\","$2","$3","$4","$5","$6","}' A.csv > A.csv_new
然后可以用旧文件替换新文件

mv A.csv_new A.csv

的确如此!请展示你在这方面的努力,至少通过检查这个网站上类似的例子。不,它应该有效。我使用逗号作为分隔符,我不想指定列(即$2,$3…)。下面的代码可以工作,但是如何删除未修改的$1。代码:awk-F“,”{print“\””,“$1,08,4)”-“substr($1,5,2)”-“substr($1,2,2)substr($1,12,9)”,“$0”}文件。csv@SantoshPillai删除未修改的$1是什么意思?事实是,日期操纵不是bash的固有特性,因此,如果您在我的注释中执行代码,则可以采用变通方法。awk首先打印修改后的日期时间,然后打印$0,包括未修改的日期时间。我如何摆脱未修改的日期时间?我有一堆需要相同操作的文件,这些文件具有不同的字段长度。如果有一个能为allI工作的代码,那就太好了,我知道你想要实现什么。很抱歉,这样不行-你必须打印剩下的2美元、3美元等等。