行が次のような csv ファイルがあります。
foo,bar,baz,5,6,8
zab,rab,oof,2,2,3
最後の 3 つの値を合計して変換するコマンドが必要です。
foo,bar,baz,19
zab,rab,oof,7
可能であれば、ワンライナーが必要です。
固定長でこれを試してください:
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
sedは算術に適したツールではありません。
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