如何使用 Windows
grep -p
(或其他 Windows 工具)实现与 findstr
等效的功能?
如果不明显,
grep -p
在找到匹配项时会输出整个段落,即空白行之间的所有行。我想仅使用 Windows 一部分的函数来实现相同的目的(我在 Windows 上有一个 grep 版本,我不知道我从哪里得到它,它有 -p
)。
内置 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
}