iostat的输出就是这样:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 2.40 0.01 3.92 0.16 25.28 12.95 0.05 12.81 6.58 2.58
sda1 0.00 0.00 0.00 0.00 0.00 0.00 25.86 0.00 6.57 5.38 0.00
sda2 0.00 2.40 0.01 3.92 0.16 25.28 12.95 0.05 12.81 6.58 2.58
sdb 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 30.37 20.16 0.00
VG00-LogVol00
0.00 0.00 0.00 0.70 0.02 2.79 8.04 0.02 23.72 3.71 0.26
VG00-LogVol04
0.00 0.00 0.00 4.31 0.03 17.26 8.01 0.07 16.74 4.32 1.87
VG00-LogVol03
0.00 0.00 0.00 0.24 0.00 0.98 8.01 0.01 21.37 8.52 0.21
VG00-LogVol08
0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 14.03 2.31 0.00
VG00-LogVol01
0.00 0.00 0.00 0.00 0.00 0.00 8.03 0.00 127.25 1.17 0.00
VG00-LogVol07
0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 2.42 1.72 0.00
VG00-LogVol06
0.00 0.00 0.00 0.80 0.01 3.21 8.02 0.01 10.28 4.89 0.39
VG00-LogVol02
0.00 0.00 0.01 0.26 0.10 1.04 8.52 0.01 52.88 6.01 0.16
VG00-LogVol05
0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 3.73 0.33 0.00
我尝试解析输出但是当我到达“VG00-LogVol00”,“VG00-LogVol04”时,我在解析文本时遇到问题。有没有办法使用sed删除额外的行?
谢谢
答案 0 :(得分:1)
如果VG00始终存在于分割线中,您可以这样做:
sed '/VG00/ { N; s/\n// }'
使用复制/粘贴文本,我有以下对齐列(GNU sed和BSD sed):
sed '/VG00/ { N; s/\n//; s/ \{5,\}/ /; }'
输出:
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 2.40 0.01 3.92 0.16 25.28 12.95 0.05 12.81 6.58 2.58
sda1 0.00 0.00 0.00 0.00 0.00 0.00 25.86 0.00 6.57 5.38 0.00
sda2 0.00 2.40 0.01 3.92 0.16 25.28 12.95 0.05 12.81 6.58 2.58
sdb 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 30.37 20.16 0.00
VG00-LogVol00 0.00 0.00 0.00 0.70 0.02 2.79 8.04 0.02 23.72 3.71 0.26
VG00-LogVol04 0.00 0.00 0.00 4.31 0.03 17.26 8.01 0.07 16.74 4.32 1.87
VG00-LogVol03 0.00 0.00 0.00 0.24 0.00 0.98 8.01 0.01 21.37 8.52 0.21
VG00-LogVol08 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 14.03 2.31 0.00
VG00-LogVol01 0.00 0.00 0.00 0.00 0.00 0.00 8.03 0.00 127.25 1.17 0.00
VG00-LogVol07 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 2.42 1.72 0.00
VG00-LogVol06 0.00 0.00 0.00 0.80 0.01 3.21 8.02 0.01 10.28 4.89 0.39
VG00-LogVol02 0.00 0.00 0.01 0.26 0.10 1.04 8.52 0.01 52.88 6.01 0.16
VG00-LogVol05 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 3.73 0.33 0.00
答案 1 :(得分:0)
我会去
sed -e '/^\([^[:space:]]\+\)$/{N;s/\n//;}'
假设设备行没有空格。
但我也会研究影响iostat并使其产生不同输出的可能性。不过,我不知道那里的选择。