2011-07-05 134 views
0

我试图提取mpath名称“DS4800_VG_STAGE *”和multipath -ll输出的在线路径的数量。蟒蛇多线组正则表达式

DS4800_VG_STAGE_2(3600a0b80004710ce00001ce24e08ce1c)DM-6 IBM,1815的FAStT
[大小= 241G] [特征= 1个queue_if_no_path] [hwhandler = 1 RDAC] [RW]
\ _轮询0 [PRIO = 100] [active]
\ _ 1:0:1:5 sdc 8:32 [active] [ready]
\ _ round-robin 0 [prio = 0] [enabled]
\ _ 2:0: 1:5 sdf 8:80 [active] [ghost]
DS4800_VG_STAGE_1(3600a0b80004706be00001ece4e08ca4f)dm-8 IBM,1815 FAStT
[size = 24112G] [features = 1 queue_if_no_p ATH] [hwhandler = 1个RDAC] [RW]
\ _轮询0 [PRIO = 100] [活性]
\ _ 1:0:1:5 SDC 8:32 [活性] [准备]
\ _循环0 [PRIO = 0] [启用]
\ _ 2:0:1:5 SDF 8:80 [活性] [鬼]

我已经成功地提取路径名但我正在努力将其余多线输出收集到一个单独的组中,以便我可以处理group2中有多少路径在线。

^(\w+\s+).+?$$((?:[^\\\\]+\n+)+) 

匹配1:
Group 1 = "DS4800_VG_STAGE_2"
Group 2 = "[size=241G][features=1 queue_if_no_path][hwhandler=1 rdac][rw]"

MATCH2:
Group 1 = "DS4800_VG_STAGE_1"
Group 2 = "[size=24112G][features=1 queue_if_no_path][hwhandler=1 rdac][rw]"

任何帮助将非常感激。

在此先感谢

+0

你可以更具体地说明你想要解析哪些行吗?我不熟悉这个命令。 –

回答

0

尝试使用这个:

^(\w+\s+).+?$$\n((?:.+?\n+)+) 

我想在你的表情,你所使用的是防止用反斜杠任何线被夹在表达[^ \\]。但是每行(在前两个“标题行”之后)都以反斜杠开始。