如果搜索字符串匹配,则只读取powershell中的行中的特定单词

时间:2016-09-23 15:48:02

标签: powershell

首先,提出一个非常简单的问题,因为我在powershell中是全新的。

我的文件如下:

"your>desired>output" START:  this is th
e output
next line
next line
"your>desired>output" START:  this is th
e output

我的任务是,如果"期望"找到了单词,而不是只读#34;输出"然后 "这是输出"

如果我使用

Select-String *.txt -pattern "desired" 

比输出

"your>desired>output" START:  this is th

"输出"不见了。

感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:2)

如果您希望匹配前后的x行,则可以使用-Context参数。

只需在匹配前后指出您想要的线数,如下所示:

Select-String $path $pattern -Context 1

这将在每场比赛之前给我们1行和1行。您可以通过生成的Context对象的MatchInfo属性访问这些行:

Select-String *.txt "desired" -Context 1 |ForEach-Object {
    # Output the matched line
    $_.Line
    # And then the next line
    $_.Context.PostContext
}