1

v1:v20 という 20 個のフィールドを持つ csv ファイルがあります。フィールド 2 から 5 を連結した v5 の後に別のフィールドを追加する方法はありますか? たとえば、ファイル ヘッダーが次のようになっているとします。

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 に答える