Bonjour,
我启动了nslookup someServer
。我认为我得到了一系列物体(如地狱之力)用空行分隔而不仅仅是一个标准输出。
$ nslookup someServer
Server: 10.0.0.1
Address: 10.0.0.1#53
Name: someServer
Address: 10.0.0.5
$
如何获取具有属性名称和地址的对象?
nslookup someServer | haveboth Name Address | wc -l
它是否存在于GNU实用程序中?
答案 0 :(得分:0)
您只是在寻找一种方法来检查输出中是否包含这两个值?
然后你可以在oneline模式下使用perl(可能不是可以想象的最漂亮的解决方案,但可以做你想要的,并且可以扩展以轻松检查更多的东西)
nslookup someServer | perl -ne '$v{"NAME"}++ if /Name/; $v{"ADDRESS"}++ if /Address/; END{ print "Has both values\n" if $v{"NAME"} && $v{"ADDRESS"} }'
这将通过您的输出并计算Name
和Address
的出现次数,然后如果两者都大于零,则打印一条消息。
如果以这种方式使用perl是一个可行的选择,那么我可以推荐这个页面进一步阅读perl oneliners
编辑:
如果您想要访问存储在property:
中的值,您可以使用
nslookup someServer | perl -F: -lane '$v{"NAME"} = $F[1] if /Name/; $v{"ADDRESS"} = $F[1] if /Address/; END{ print $v{"ADDRESS"}." ".$v{"NAME"} if exists $v{"ADDRESS"} && $v{"NAME"} }'
这会将:
上的给定行拆分为字段分隔符,并将值存储在变量中,而不是简单的计数出现次数。请注意,以这种方式完成它只会存储最后一次出现。