Windows:findstr - 如何在查找行之前/之后打印3行?

a_s*_*ber 13 shell

Windows 7的.

如果我想在文件中找到一些文本我使用下一个命令(来自windows shell)

findstr "find_this" trace.log
Run Code Online (Sandbox Code Playgroud)

结果打印内容文本"find_this"的所有行.好.但我需要打印前3行和找到行后3行.我如何通过命令findstr来做到这一点?

在Unix上,我可以通过"grep"来做到这一点

 grep -B 3 -A 3 find_this trace.log
Run Code Online (Sandbox Code Playgroud)

但我如何在Windows上执行此操作?

bla*_*pen 12

如果您在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
Run Code Online (Sandbox Code Playgroud)

Get-Content命令获取指定的文件.Select-String命令采用您要查找的模式.Context命令允许您指定要显示的行数(在其之前/之后)(在其匹配的行周围).

  • 或者像这样(在 powershell 上): Select-String -Path "trace.log" -Pattern "find_this" -Context 3, 3 (3认同)