使用 Windows findstr 进行段落输出

问题描述 投票:0回答:1

如何使用 Windows

grep -p
(或其他 Windows 工具)实现与
findstr
等效的功能?

如果不明显,

grep -p
在找到匹配项时会输出整个段落,即空白行之间的所有行。我想仅使用 Windows 一部分的函数来实现相同的目的(我在 Windows 上有一个 grep 版本,我不知道我从哪里得到它,它有
-p
)。

grep findstr
1个回答
0
投票

内置 Windows 工具

findstr
的工作方式与
grep -p
不同。但我们可以通过将
findstr
与其他 Windows 工具一起使用来获得类似的结果。

您可以使用

powershell

尝试此方法
$paragraph = @()
Select-String -Path "YOUR_FILE_PATH" -Pattern "YOUR_SEARCH_PATTERN" | ForEach-Object {
    if ([string]::IsNullOrWhiteSpace($_.Line)) {
        if ($paragraph.Count -gt 0) {
            $paragraph
            $paragraph = @()
        }
    } else {
        $paragraph += $_.Line
    }
}
if ($paragraph.Count -gt 0) {
    $paragraph
}
© www.soinside.com 2019 - 2024. All rights reserved.