2

行が次のような csv ファイルがあります。

foo,bar,baz,5,6,8
zab,rab,oof,2,2,3

最後の 3 つの値を合計して変換するコマンドが必要です。

foo,bar,baz,19
zab,rab,oof,7

可能であれば、ワンライナーが必要です。

4

2 に答える 2

3

固定長でこれを試してください:

awk -F, '{print $1,$2,$3,$4+$5+$6}' OFS=, file

そして固定長ではない場合:

awk -F, '{for(i=1;i<NF-2;i++)printf("%s,", $i)}{print $NF+$(NF-1)+$(NF-2)}' file

は算術に適したツールではありません。

于 2013-03-21T13:29:00.890 に答える
1
perl -F, -lane '$a+=$_ for(@F[3..5]);print join ",",@F[0..2],$a' your_file

以下の小さなテスト:

> echo "foo,bar,baz,5,6,8" | perl -F, -lane '$a+=$_ for(@F[3..5]);print join ",",@F[0..2],$a'
foo,bar,baz,19
于 2013-03-21T13:51:17.180 に答える