【问题标题】:wbemcli: key/value pair outputwbemcli:键/值对输出
【发布时间】:2015-05-28 21:57:46
【问题描述】:

如果我使用wbemcli 枚举所有实例,我会得到类似的结果:

wbemcli -nl -t -noverify ei 'https://aaa/aaa:aaa' 
https://aaa/aaa:aaa.Version="",Vendor="",Name=""
-Version#=""
-Vendor#=""
-Name#=""
-Description=""

我怎样才能调用wbemcli 只获得一件物品(即Name)?而不是一切。

-t 选项表示:

-t
将数组 ([])、引用 (&) 和关键属性 (#) 指示符附加到属性名称

但我无法利用它对我有利。

有没有办法以键/值对格式检索此信息?
或者也许将输出通过管道传输到一个数组中,或者我可以从中获取我需要的东西?

当我将输出放入数组时,所有数据都存储在第一个元素${a[0]} 中。

编辑 这是一个输出示例:

$ wbemcli -nl -t -noverify ei 'https://user:pw@000.000.000.000:0000/root/aaa:AA_AaaAaaaAaaaa'
000.000.000.000:0000/root/aaa:AA_AaaAaaaAaaaa.ClassName="AA_AaaAaaaAaaaa",Name="123456a7ff890123"
-ClassName#="AA_AaaAaaaAaaaa"
-Name#="123456a7ff890123"
-Caption="aa aaa"
-Description="aa aa"
-ElementName="aa aaa aaaa"
-OperationalStatus[]=2
-HealthState=5
-CommunicationStatus=2
-DetailedStatus=1
-OperatingStatus=0
-PrimaryStatus=1
-EnabledState=5
-RequestedState=12
-EnabledDefault=2
-TransitioningToState=12
-PrimaryOwnerName="Uninitialized Contact"
-PrimaryOwnerContact="Uninitialized Contact"

输出通常采用这种格式。
如果查询返回多个对象,则它们将被分组,并且所有对象都将具有相同的成员及其相应的值。

【问题讨论】:

  • - 为前缀的行上的值是否只是复制以https 开头的行上的值?输出总是这样吗?您可以一次在多个 URL 上运行它吗(并且需要独立检索每个 Name 值)?
  • @EtanReisner 我编辑了我的帖子以反映您的问题。
  • 用管道传送到awk -F '[-=]' '$1==Name{print $2}'? (假设 -= 都不能出现在键或值中。如果可以,那么您需要的还不止这些。)

标签: bash wbem


【解决方案1】:

http://linux.dell.com/files/whitepapers/WBEM_based_management_in_Linux.pdf 有许多示例,它们只是建议使用grep 来获取您正在寻找的特定键和值。似乎没有办法直接查询结果集中的特定键。

扩展 Etan Reisner 的评论,您可以使用类似

wbemcli <<query>> | grep -oP "^-$key=\K.*"

获取$key 中命名的键的值,前提是您有 GNU grep,它为 Perl 兼容的正则表达式提供了 -P 选项(这里是 \K“忘记这里”运算符很有用)。因此,对于您的具体示例,

wbemcli -nl -t -noverify ei 'https://aaa/aaa:aaa' |
grep -oP '^-Name#=\K.*'

还有一个-dx 选项可以生成 XML 输出,如果您打算在此协议之上编写一个主要应用程序,它可能会更健壮(但也许您应该查看一个专用的 WBEM 库,例如C or Java libraries listed in their wiki)。编写一个简单的(例如)Python 客户端来检索(部分?)结果树并让您在本地查询或操作它似乎也不令人难以置信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2022-08-12
    相关资源
    最近更新 更多