如何查询惠普智能arrays背板/机箱的固件版本(使用脚本)?

我想保留一个数据库中安装的固件的列表,我可以在hpacucli输出我想要的数据,但我找不到一个可靠的方法来parsing该文件;

# hpacucli ctrl slot=2 enclosure 4I:1 show Smart Array P800 in Slot 2 DL320s at Port 4I, Box 1, OK Fan Status: OK Temperature Status: OK Power Supply Status: Redundant Vendor ID: HP Serial Number: **Firmware Version: 1.20** Drive Bays: 12 Port: 4I Box: 1 Location: Internal Expander 249 Device Number: 249 Firmware Version: 1.20 WWID: 500508B300DCED50 Port: 4I Box: 1 Vendor ID: HP Expander 250 Device Number: 250 Firmware Version: 1.02 WWID: 50014380036D183F Vendor ID: HP Enclosure SEP (Vendor ID HP, Model DL320s) 247 Device Number: 247 Firmware Version: 1.20 WWID: 500508B300DCED63 Port: 4I Box: 1 Vendor ID: HP Model: DL320s SEP (Vendor ID HP, Model P800) 248 Device Number: 248 Firmware Version: 1.02 WWID: 50014380036D183E Vendor ID: HP Model: P800 

我该如何parsing这个价值?

某些机箱(内部机箱)完全没有固件值

我试图parsinghpacucli的输出,就像过去一样,这就是我最终要做的事情:

运行ACU命令并将输出转储到文件。 您编写的脚本将一次parsing文件一行。 在读取文件时,忽略每一行,直到看到以“Smart Array”开头的行。 find该行后,您将开始查找空白行。 当你看到一个空行,你知道一个部分即将开始。 将空白行之后的行存储为title 。 继续阅读,寻找一行“固件版本”。 如果你find这样一行,parsing出来的数字(最简单的方法是在冒号处分割行)并将其作为version存储。 将titleversion写入输出文件。 当您find另一个空白行时,请删除titleversion的旧值并重复该过程。

我现在找不到我的脚本,或者将它作为示例代码发布。 从我记得的地方来看,我是用Ruby做的,只不过是十几行。