PowerShell命令输出解析

r1zk6ea1  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(166)

我目前正在尝试获取nslookup信息。
我使用nslookup查找思科保护伞信息

nslookup -q=txt debug.opendns.com | select-string -Pattern "device"

我的输出显示为

Non-authoritative answer:

        "device 0xxxxyyyyyzzzzze"

但它实际上只输出了device 0xxxxyyyyyzzzzze,这很好。
但是,有没有办法进一步解析这些信息,使其只显示“0xxxxyyyyzzze”部分?数字字母序列总是不同的。我希望将此信息作为自定义变量放入MDM,这样我就可以在没有它的情况下对设备进行补救。
试过

nslookup -q=txt debug.opendns.com | select-string -Pattern "device" -Exclude "device"

不确定是否可以对同一行上的文本执行此操作。试着不确定“设备”这个词,但显示文本的其余部分。

aiazj4mn

aiazj4mn1#

下面是一个比我评论中的regex更好的正则表达式,使用这个regex,不需要从字符串中去掉最后一个双引号"

nslookup -q=txt debug.opendns.com | Select-String '(?<=device\s)[^"]+' |
    ForEach-Object { $_.Matches.Value }

详情见https://regex101.com/r/gdL46B/1

相关问题