[英]Sum of multiple columns in bash
我下面有一個O / p文件,正在尋找bash和Perl解決方案:
Aggregate total used avail capacity
aggr0 100 59 41 41%
aggr1 200 100 100 50%
aggr2 300 150 150 50%
aggr3 400 200 200 50%
我想計算除Col-1外的所有單獨列的總和。 最終狀態應如下所示:
Aggregate total used avail capacity
aggr0 100 59 41 41%
aggr1 200 100 100 50%
aggr2 300 150 150 50%
aggr3 400 200 200 50%
=========================================================
1000 509 460 50.9% (Used % of all aggr's)
infile是其中包含數據的文件
perl -ape 'next if $.==1; for my $i (1..4) { $s[$i] += $F[$i]; } END { $s[4]=sprintf("%.2f%%",$s[2]/$s[1]*100); $"="\t";print "total\t\t @s\n";}'
Perl可能更適合此任務,但是也可以通過bash來完成:)
tail -n +2 my_op_file.txt | while read n c1 c2 c3 c4;do
total=$(($total + $c1 ))
used=$(($used + $c2 ))
avail=$(($avail + $c3 ))
capacity=$(($capacity + ${c4%%%}))
echo $total $used $avail $capacity
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.