Bash 行列转换小技巧
前言
有时我们监控系统性能的时候经常回去采集系统状态,并记录到文件中。
然而有时候系统的某些状态信息是行列颠倒的,比如:
$ cat /proc/2483/status
...
VmPeak: 28184 kB
VmSize: 28120 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 5292 kB
VmRSS: 5260 kB
VmData: 3224 kB
VmStk: 136 kB
VmExe: 956 kB
VmLib: 2288 kB
VmPTE: 80 kB
VmSwap: 0 kB
...
这个时候我们就需要把他给转回来!
Trick
#!/bin/bash
head=$(cat /proc/2483/status | \
grep 'Vm' | \
awk -F ': *' '{print $1}')
body=$(cat /proc/2483/status | \
grep 'Vm' | \
awk -F ': *' '{print $2}')
echo $head
echo $body
# output
VmPeak VmSize VmLck VmPin VmHWM VmRSS VmData ...
28184 kB 28120 kB 0 kB 0 kB 5292 kB 5260 kB 3224 kB ...