我有一个mmddyy日期列的csv文件(例如:090718)。我需要将它转换为mm / dd / yyyy(例如:09/07/2018)并使用shell脚本保存回csv中的同一列
假设您的问题只是按以下方式重新格式化日期字符串:隔离2位数组并在最后一组之前添加“20”(2位数的日期无论如何都不足以猜测世纪)。
假设日期列是由;
分隔的其他列。
例如input.csv
是
data_l1c1;110918;data_l1c3
data_l2c2;090718;data_l2c3
然后一个简单的GNU sed
替换将是:
sed -i -E "s/;(.{2})(.{2})(.{2});/;\1\/\2\/20\3;/g" input.csv
;(.{2})(.{2})(.{2});
在;
之间找到3组,每组2个字符;\1\/\2\/20\3;
找到的每个组都标记为:\ 1表示找到的第一组两位数,...,\ 3表示第三组。根据您的问题陈述,这些组中的每一个应该以/分隔(斜杠必须受到保护,因此它们显示为\/
),最后一组\ 3前面带有“20”。input.csv
被修改)。