shell Windows:findstr -如何打印匹配行前后的3行?

polkgigr  于 2023-05-01  发布在  Shell
关注(0)|答案(3)|浏览(468)

在Windows 7中,如果我想在文件中查找一些文本,我使用以下命令。

findstr "find_this" trace.log

这将打印包含文本“find_this”的所有行。好的。但是我还需要打印前三行和后三行。如何通过命令findstr执行此操作?
在Unix上,我可以通过“grep”来实现这一点

grep -B 3 -A 3 find_this trace.log

如何在Windows上做到这一点?

czq61nw1

czq61nw11#

如果你在Powershell中打开一个命令(因为你似乎在Win7上)。.

PS C:\Users\user> Get-Content data.txt
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve

PS C:\Users\user> Get-Content data.txt | Select-String -Pattern four -Context 2,4

  two
  three
> four
  five
  six
  seven
  eight

Get-Content命令获取指定的文件。Select-String命令采用您想要查找的模式。Context命令允许您指定要显示多少行(之前/之后)(围绕匹配的行)。

ddarikpa

ddarikpa2#

您可以通过多种方式在Windows上使用grep,按升序排列:

vsnjm48y

vsnjm48y3#

这在Windows命令行中对我很有效:

powershell Select-String -Path "trace.log" -Pattern "find_this" -Context 3,3

Example
'上下文3,3'意味着显示上面3行和下面3行

相关问题