【问题标题】:Windows equivalent to grep -B (before context) and -A (after context)?Windows 相当于 grep -B(在上下文之前)和 -A(在上下文之后)?
【发布时间】:2014-04-27 09:51:10
【问题描述】:

grep 我知道有一个-B 开关会...

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

...例如,您可能会运行如下命令:

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

在 Windows 中是否有与此等效的功能?我目前得到的是:

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

但这仅在输出中与7492 在同一行上传递文本,而我需要前面的一些行来有效地解释信息。但据我所知,find 命令没有与grep-B 开关等效的开关。是否有某种方法可以在 Windows 中复制 grep 功能的这一方面?

【问题讨论】:

标签: regex windows powershell


【解决方案1】:

使用select-string-context 参数。示例:

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

这是之前的 5 行,之后的 0 行。这个例子恰好得到了匹配 git commit 消息的哈希值。

如果您输入一个数字作为此参数的值,则该数字确定匹配前后捕获的行数。如果输入两个数字作为值,第一个数字确定匹配前的行数,第二个数字确定匹配后的行数。

MSDN docs for select-string

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2020-10-03
    相关资源
    最近更新 更多