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上执行此操作?
答案 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
,按过度使用程度升序排列: