在Windows 7中,如果我想在文件中查找一些文本,我使用以下命令。
findstr "find_this" trace.log
这将打印包含文本“find_this”的所有行。好的。但是我还需要打印前三行和后三行。如何通过命令findstr执行此操作?在Unix上,我可以通过“grep”来实现这一点
grep -B 3 -A 3 find_this trace.log
如何在Windows上做到这一点?
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命令允许您指定要显示多少行(之前/之后)(围绕匹配的行)。
ddarikpa2#
您可以通过多种方式在Windows上使用grep,按升序排列:
grep
vsnjm48y3#
这在Windows命令行中对我很有效:
powershell Select-String -Path "trace.log" -Pattern "find_this" -Context 3,3
Example'上下文3,3'意味着显示上面3行和下面3行
3条答案
按热度按时间czq61nw11#
如果你在Powershell中打开一个命令(因为你似乎在Win7上)。.
Get-Content命令获取指定的文件。Select-String命令采用您想要查找的模式。Context命令允许您指定要显示多少行(之前/之后)(围绕匹配的行)。
ddarikpa2#
您可以通过多种方式在Windows上使用
grep
,按升序排列:vsnjm48y3#
这在Windows命令行中对我很有效:
Example
'上下文3,3'意味着显示上面3行和下面3行