2017-03-09 76 views
0

Iam使用sar -r 1 1獲取內存消耗的輸出。
以下爲輸出在單行中排列行和列

Linux XXX  SOME_DATE  ARCHITECTURE  NO. OF CPU 

02:05:38 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit  %commit 
02:05:39 PM 125296 16209328  99.23 260300 1496748 9588744  46.71 
Average:  125296 16209328  99.23 260300 1496748 9588744  46.71 

現在我想擺脫前兩行和前兩列的和下面的命令工作

sar -r 1 1 | sed -n 3,4p | cut -d " " -f3- 

輸出是

kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 
    125820 16208804  99.23 260680 1499836 9588268  46.71 

我的問題是,我如何安排第一列,第一行=第二列,第二行等......例如kbmemfree = 125820, kbmemused = 16208804,等等...

+0

用四個空格前綴代碼/數據。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus

+0

感謝您的編輯... –

回答

2

可以通過管道將awk和做有:

sar -r 1 1 | awk 'NR==3 {for(i=3;i<=NF;++i){a[i]=$i}} NR==4{for(i=3;i<=NF;++i){printf "%s=%s, ", a[i],$i};print '\n'}' 

這需要輸出,如果備案號爲3,捕捉陣列a[]頭。如果記錄號是4,則打印出格式header=number,

+0

工作就像一個魅力...非常感謝你! –