0

以下に 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)
4

2 に答える 2

0

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";}'
于 2013-04-09T08:31:12.747 に答える
0

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
于 2013-04-09T08:46:09.223 に答える