2014-02-27 34 views
0

我想獲得兩列值的總和。我需要單獨的每個結果。這裏是我的價值觀:在Linux中打印多個列的總和

命令

iostat -x 1 2 \ 
| perl -e 'local $/=""; @p=<STDIN>; print @p[4];' \ 
| awk '{ print $6 " " $7}' \ 
| grep -v rsec 

輸出

0.00 1608.00 
22.00 0.00 
10.00 1608.00 
0.00 1312.00 
0.00 0.00 
0.00 0.00 
0.00 296.00 

我想這個結果

32.00 4824.00 

在這裏,我s我試過了:

iostat -x 1 2 \ 
| perl -e 'local $/=""; @p=<STDIN>; print @p[4];' \ 
| awk '{ print $6 " " $7}' \ 
| grep -v rsec \ 
| awk '{ SUM += $1 SUM2 += $2} END { print SUM " " SUM2}' 

這個命令給我一個語法錯誤。這有什麼解決方案?

+5

只需在'SUM + = $ 1'和'SUM2 + = $ 2' - >'{SUM + = $ 1; SUM2 + = $ 2}'。 – fedorqui

+0

解決了我的問題,謝謝。 – AloneInTheDark

回答

4

根據手冊頁,awk中的命令可以用換行符,分號或兩者分隔。你的兩個命令不會被任何這些東西分開。解決辦法是寫:

| awk '{ SUM += $1; SUM2 += $2} END { print SUM " " SUM2}'