我使用 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 :(得分: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,