数値を含むファイルがあります。たとえば、次のようになります。
1 11 323
2 13 3
3 44 4
4 66 23
5 70 23
6 34 23
7 24 22
8 27 5
行を合計して結果を列に出力するにはどうすればよいですか?結果は次のとおりです。
1 11 323 335
2 13 3 18
3 44 4 51
4 66 23 93
5 70 23 98
6 34 23 63
7 24 22 53
8 27 5 40
sed、awk、Perlのソリューションを見たいです。
ベストアンサー1
Perlソリューション:
perl -MList::Util=sum -lane 'print "@F ", sum(@F)' < data.txt
-n
入力を1行ずつ読みます。-l
入力から改行文字を削除し、出力に追加します。-a
各入力ラインを余白の @F 配列に分割します。- リスト::ユーティリティこの
sum
機能が提供されるため、数値を直接合計する必要はありません。
sedでは操作はほとんど不可能ですが、sedを使用してスペースをプラス記号に変換し、それをsumのソースとして使用し、bc
結果を入力に貼り付けることができます。
paste -d ' ' data.txt <(sed -r 's/ /+/g' data.txt | bc)