首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用awk解析命令输出并计数结果

使用awk解析命令输出并计数结果
EN

Stack Overflow用户
提问于 2013-11-13 11:34:44
回答 1查看 602关注 0票数 0

我有一个来自“多路径-ll”命令的输出

来自RHEL:

代码语言:javascript
复制
mpath114 (3600507680283095ea8000000000004fa) dm-28 IBM,2145
[size=200G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
 \_ 19:0:0:40 sdea 128:32  [active][ready]
 \_ 20:0:1:40 sdeb 128:48  [active][ready]
 \_ 20:0:1:41 sdec 128:16  [failed][faulty]
\_ round-robin 0 [prio=10][enabled]
 \_ 20:0:0:40 sdba 67:64   [active][ready]
 \_ 19:0:1:40 sdgg 131:192 [active][ready]
mpath131 (3600507680283095ea800000000000504) dm-39 IBM,2145
[size=10G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
 \_ 20:0:1:1  sdbl 67:240  [active][ready]
 \_ 19:0:0:1  sdc  8:32    [active][ready]
\_ round-robin 0 [prio=10][enabled]
 \_ 19:0:1:1  sdet 129:80  [active][ready]
 \_ 20:0:0:1  sdk  8:160   [active][ready]
[..]

或来自SLES服务器:

代码语言:javascript
复制
mpathmzp (36005076801c7061ef800000000000089) dm-0 IBM,2145
size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=enabled
| `- 67:0:2:0 sde 8:64 active ready running
| `- 68:0:0:1 sdl 8:76 failed faulty running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 67:0:3:0 sdc 8:32 active ready running
  `- 68:0:0:0 sdd 8:48 active ready running
[..]

我想解析它(最好是使用awk或bash),以显示配置的摘要。它应该打印伪多路径设备、活动路径数和失败(如果有的话)示例:

代码语言:javascript
复制
dm-39, 10G,  Total: 4 paths, active: 4, failed: 0
dm-28, 200G, Total: 5 paths, active: 4, failed: 1

SLES也是如此:

代码语言:javascript
复制
dm-0,  10G,  Total: 4 paths, active: 3, failed: 1

如果可能的话,我希望对输出进行排序,以便没有失败路径和大多数活动路径的路径位于顶部,并以无设备路径和失败路径结束。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 13:07:55

这个awk应该这样做:

代码语言:javascript
复制
multipath -ll | awk 'NR>1 {r=f=0;for (i=1;i<=NF;i++) if ($i~/ready/) r++; else if ($i~/faulty/) f++;split($5,a,"=|]");print $3,a[2]"\tTotal: "r+f" paths, active: "r,"failed: "f}' RS="mpath" OFS=", "
dm-28, 200G     Total: 5 paths, active: 4, failed: 1
dm-39, 10G      Total: 4 paths, active: 4, failed: 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19952724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档