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

问题描述 投票:15回答:1

在Windows 7中,如果要在文件中查找某些文本,请使用以下命令。

findstr "find_this" trace.log

这将显示所有包含文本“ find_this”的行。好。但是我还需要在行前打印3行,在行之后打印3行。如何通过命令findstr来做到这一点?

在Unix上,我可以通过“ grep”做到这一点

 grep -B 3 -A 3 find_this trace.log

但是我如何在Windows上做到这一点?

shell
1个回答
14
投票

如果您在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命令采用您要查找的模式。上下文命令使您可以指定要显示的行数(之前/之后)(与之匹配的行周围)。

© www.soinside.com 2019 - 2024. All rights reserved.