我正在使用以下powershell在文件中搜索行项目,并选择匹配后的下5行:
Get-Content -Path C:\test\file.txt | Where-Object {$_ -match "###"} | Select-Object -Last 5这只返回每个匹配的第一行。预期的结果将是第一行,以及随后的5行。
发布于 2020-09-09 21:54:25
由于-Context参数,Select-String是一个很好的候选者:
Select-String -Path C:\test\file.txt -Pattern '###' -Context 0,5 |
Foreach-Object { $_.Line,$_.Context.PostContext}-Context参数有两个值。第一个是匹配前的行数。第二个是匹配后的行数。在这种情况下,从技术上讲,您可以使用-Context 5,因为一个数字适用于匹配后的行。
因为Select-String返回一个MatchInfo对象。您需要访问Line属性才能显示包含当前匹配项的行。Context属性是一个包含Precontext和Postcontext属性的MatchInfoContext对象。这些属性分别包含匹配之前和之后的行。
发布于 2020-09-09 21:54:25
Get-Content -Path C:\temp\file.txt | Where-Object {$_ -match "###"} | Select-Object -Index 0,4这会得到第一行和第五行的结果
https://stackoverflow.com/questions/63813118
复制相似问题