1

我有一个包含 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,...
4

2 回答 2

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,....
于 2012-04-15T04:00:05.217 回答
0

这可能对您有用:

 sed 's/,/\n,/5;h;s/\n.*//;s/[, ]//g;G;s/\([^\n]*\)\n\([^\n]*\)\n/\2, \1/' file
于 2012-04-15T13:10:48.940 回答