1

iostat から nvme* hhd に一致する行の値をメガバイト単位で合計してから、行 x から行 z までの合計を取得しようとしています。私の場合は 2 行です。

iostat -m  <-- in megabytes

iostat -m |  awk '{if($1 ~ /nvme*/ ) print $2, $3, $4}'

------------------
9.38,   0.20,  0.57

13.67,  0.01,  1.60
------------------- 
23.05, 0.21, 2.17  <<-- The total

どうすればこれを達成できますか?

4

1 に答える 1

4

試す:

iostat -m |  awk '$1 ~ /nvme*/{a+=$2;b+=$3;c+=$4;print $2, $3, $4} END{print"--------------";print a,b,c}'

使い方

  • $1 ~ /nvme*/

    これにより、最初のフィールドが regex と一致する行が選択されますnvme*。Myiostatは、 を含む行を生成しませんnvme。したがって、これが実際にあなたのケースに適した正規表現であるかどうかを判断するのはあなた次第です。

  • a+=$2;b+=$3;c+=$4

    aこれにより、変数、b、およびに関心のある 3 つの列の実行中の合計が保持されますc

  • print $2, $3, $4

    これにより、対象の 3 つの列が出力されます。

  • END{print"--------------";print a,b,c}

    すべての行が読み込まれると、合計が出力されます。はprint"--------------"、私のシステムで見栄えの良いテーブルを生成します。別の形式で出力を生成する場合iostatは、それに応じて調整する必要がある場合があります。

于 2015-02-18T20:31:55.070 に答える