Windows中对应于grep的-B(前文)和-A(后文)的命令是什么?

11 浏览
0 Comments

Windows中对应于grep的-B(前文)和-A(后文)的命令是什么?

grep中,我了解到有一个-B开关,它会...

打印匹配行之前的NUM行上下文。

...所以例如你可以运行这样的命令:

cvs log -N -S -w -d"1 day ago" | grep -B14 "some text" > afile

在Windows中有相当于这个的吗?我目前的命令是:

cvs log -N -S -w -d"1 day ago" | find "7492" > output.txt

但这只将与7492在同一行的文本输出,而我需要一些前面的行来有用地解释信息。但据我所见,find命令没有等同于grep-B开关的开关。有没有办法在Windows中复制grep功能的这个方面?

0
0 Comments

Windows中的grep命令是一个非常有用的文本搜索工具,它可以在文件或标准输入中查找匹配特定模式的行,并可以输出匹配行的上下文。

然而,Windows中并没有与grep命令的-B(前上下文)和-A(后上下文)等效的命令。这导致了一些用户在Windows系统中无法以相同的方式使用grep命令。

为了解决这个问题,Windows系统中的PowerShell提供了一个名为select-string的命令,它可以用来实现类似于grep命令的功能。通过select-string命令的-context参数,可以指定所需的上下文行数。

例如,可以使用以下命令来实现类似于grep -B和grep -A的效果:

git log | select-string limit -context 5,0

这个例子中,将获取与git提交消息匹配的哈希值,并输出匹配行的前5行。

根据MSDN文档的说明,如果将一个数字作为此参数的值,该数字将确定在匹配之前和之后捕获的行数。如果将两个数字作为值,第一个数字将确定匹配之前的行数,第二个数字将确定匹配之后的行数。

通过使用PowerShell中的select-string命令的-context参数,用户可以在Windows系统中实现类似于grep命令的-B和-A的功能。这为在Windows环境中进行文本搜索和分析提供了更多的灵活性和便利性。

0