我有很多csv文件,我需要操作包含日期的第一个字段,然后打印其余部分。 这些文件的字段长度不同。
我的示例行是
(keyword <arbitrary-string>)
我已尝试过以下代码
"11.07.2016 00:00:00",DON1SOE02,PAPN,PAPN,OPEN1000,918945,
结果是
awk -F"," '{print "\""substr($1,08,4)"-"substr($1,5,2)"-"substr($1,2,2)substr($1,12,9)"\","$0""}' file.csv
有没有办法避免打印未修改的日期字段,即&#34; 11.07.2016 00:00:00&#34;
下面的解决方案有一种跳过第一列的方法,但是我想修改第一列然后打印修改然后跳过打印未经修改的第一列
答案 0 :(得分:3)
您必须将新值提供给第一个字段:awk '{$1="..."}1
。否则整行$0
将保持不变:
awk -F, -v OFS=, '{$1="\""substr($1,8,4)"-"substr($1,5,2)"-"substr($1,2,2)""substr($1,12,9)"\""}1' file.csv