操纵第一个字段,然后使用awk打印csv文件的其余部分

时间:2017-01-18 11:44:56

标签: linux awk

我有很多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;

下面的解决方案有一种跳过第一列的方法,但是我想修改第一列然后打印修改然后跳过打印未经修改的第一列

Using awk to print all columns from the nth to the last

1 个答案:

答案 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