Powershell - Streamreader -match限制返回结果

时间:2014-03-11 18:32:59

标签: powershell-v3.0

我在Powershell中运行以下代码,搜索字符串London,并且由于之前的一些帮助而运行良好:

$sr = new-object System.io.streamreader(get-item C:\Temp\a.txt)
while ($line = $sr.readline()){ 
    if ($line -match "London"){ 
        $line} 
    }
}

然而,任何人都可以建议一种简单的方法来限制结果,所以如果找到100个匹配,我可以选择只输出1个结果到文件(或选择输出的行数)

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以为if语句添加循环约束。例如:

$sr = New-Object System.IO.StreamReader(Get-Item C:\Temp\a.txt)
$limit = 3; $i = 0
while ($line = $sr.ReadLine()) {   
    if ($line -match "London" -and $i -lt $limit) {
            $line
            $i += 1
    }
}

会限制返回的行数,包含" London"无论你将$limit变量设置为什么(在这种情况下,最多返回三个第一行匹配)。