连接csv文件中的字段

时间:2012-04-15 03:45:51

标签: bash unix

我有一个包含20个字段的csv文件:v1:v20。是否有任何方法可以在v5之后添加另一个字段,这将是字段2到5的串联?例如,假设文件头是:

v1, v2, v3, v4, v5, v5, v7,...
a,  b,  c,  d,  e,  f,  g,....

我希望它看起来像这样:

v1, v2, v3, v4, v5, new.field, v5, v7,...
a,  b,  c,  d,  e,   bcde,     f,  g,...

2 个答案:

答案 0 :(得分:1)

gawk -F ' *, *' -v OFS=',' '
{
    $6 = (NR==1 ? "new.field," : $2 $3 $4 $5 ",") $6
    print
}' input.csv

结果:

v1,v2,v3,v4,v5,new.field,v5,v7,...
a,b,c,d,e,bcde,f,g,....

答案 1 :(得分:0)

这可能对您有用:

 sed 's/,/\n,/5;h;s/\n.*//;s/[, ]//g;G;s/\([^\n]*\)\n\([^\n]*\)\n/\2, \1/' file