如何从nslookup输出中提取Cisco Umbrella设备ID?
提取Cisco Umbrella设备ID的PowerShell命令方案
以下两种方法可直接从nslookup输出中提取目标设备ID:
方法1:正则捕获组(推荐)
用正则表达式精准捕获device后的设备ID字符串:
nslookup -q=txt debug.opendns.com | select-string -Pattern 'device (\S+)' | ForEach-Object { $_.Matches.Groups[1].Value }
- 正则
device (\S+)里,(\S+)会捕获device之后的所有非空白字符(即目标设备ID) - 通过
$_.Matches.Groups[1].Value直接提取捕获到的ID内容
方法2:字符串拆分
先匹配包含device的行,再按空白字符拆分字符串并取第二部分:
nslookup -q=txt debug.opendns.com | select-string -Pattern 'device' | ForEach-Object { ($_.Line -split '\s+')[1] }
-split '\s+'会将整行按任意数量的空白字符拆分- 索引
[1]对应拆分后的第二个元素,即目标设备ID
关于你之前尝试的问题
select-string的-Exclude参数是排除匹配指定模式的整个行,而非移除行内的指定文本,因此无法实现你想要的效果,改用上述两种方法即可。
内容的提问来源于stack exchange,提问作者frederick ferby
相关产品推荐
相关产品推荐

