PowerShell 查找字符串复制后续行

PowerShell 查找字符串复制后续行

我正在尝试在文本文件中查找一个字符串,找到后,我想复制找到该字符串的行,并复制以下 3 行。

使用 PowerShell,我尝试了这个命令:

$string = "January"
$dataRead = "C:\Monthly.txt
Select-String $string $dataRead -Context 0, 3 | % {$_.Context.PostContext} | out-file "C:\Results.txt"

(这些行来自执行文件复制等其他过程的更大的脚本。)

运行时,Out-File 会给出我的关键字所在位置后面的 3 行。如果我将 Context 更改为 4,则会得到接下来的 4 行,而不是真正从我需要的行开始。

我怎样才能复制包含关键字的行以及紧随其后的 3 行?

答案1

您只需添加您的行,因为您只选择了帖子上下文。

$string = "January"
$dataRead = "C:\Monthly.txt"

Select-String $string $dataRead -Context 0, 3 | % { $_.line + $_.Context.PostContext } |  out-file "C:\Results.txt"  

如果你需要一行 PreContext,你需要分别添加

Select-String $string $dataRead -Context 1, 3 | % { $_.context.PreContext + $_.line + $_.Context.PostContext } |  out-file "C:\Results.txt"

相关内容