2014-07-17 137 views
1

我有一个返回的URL列表中的XML命令,例如返回第一个匹配行

PS > $xml.rss.channel.item.link 
http://example.com/20140704.exe 
http://example.com/20140704.tar.xz 
http://example.com/20140624.exe 
http://example.com/20140624.tar.xz 
http://example.com/20140507.tar.xz 

从这个名单,我想回第一.tar.xz线。我有这个 命令

$xml.rss.channel.item.link | ? {$_ -match '.tar.xz'} | select -first 1 

但如果可能的话,我宁愿只有一个管道的命令。

回答

1

使用两个管道

$xml.rss.channel.item.link | Select-String .tar.xz | select -first 1 

一管不同的方式

($xml.rss.channel.item.link | Select-String .tar.xz)[0] 
3

你不需要管都:

(Select-Xml -Xml $xml -XPath "(//link[contains(.,'.tar.xz')])[1]").Node.InnerText 

注:XPath是区分大小写。如果这是一个问题,您可以使用trick with translate() function并强制它忽略该情况。

相关问题