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

时间:2016-11-29 10:41:15

标签: shell

Windows 7。

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

findstr "find_this" trace.log

结果打印内容文本“find_this”的所有行。好。 但我需要打印前3行和找到行后3行。 我怎么能通过命令 findstr 来做到这一点?

在Unix上,我可以通过“grep”

来做到这一点
 grep -B 3 -A 3 find_this trace.log

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

2 个答案:

答案 0 :(得分:7)

如果您在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命令可以指定要显示的行数(前/后)(在匹配的行周围)。

答案 1 :(得分:0)

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