首先,提出一个非常简单的问题,因为我在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
"输出"不见了。
感谢任何帮助。谢谢。
答案 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
}