2017-03-09 5 views
0

IAM sar -r 1 1を使用すると、メモリ消費量を得ることができます。
次は、今、私は最初の2行と最初の2つの列を取り除くと、次のコマンドは、出力が行と列を1行に整列する

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

ある

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

を働い取得したい出力

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 

です私の質問は、どのように私は最初の列、最初の行= 2番目の列、2番目の行などを整理することができます...などkbmemfree = 125820, kbmemused = 16208804,のように...

+0

コード/データに4つの空白を付けます。 [edit-help](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

魅力的なように働いて...ありがとう! –

関連する問題