Windows 7 到 Windows 10 中 grep 字符串等效项

Windows 7 到 Windows 10 中 grep 字符串等效项

我想在 Windows 中查找与 Linux 中的以下命令等效的命令:

cat file.txt | grep -oP '\d{5}-\d{5}'

出去

99527-86793

和:

findstr /R "pattern" file.txt 

我尝试了这个但它只起到了部分作用。

findstr [0-9]-[0-9] file.txt

出去:

de4f2114-847c-4cf2-8a0b-a38d04c0fdac1/1
99527-86793

我怎样才能将输出限定为仅这些数字:开始和结束 5 个数字 0 到 9 - 5 个数字 0 到 9 ?

谢谢

答案1

像这样的事情就可以解决问题:

findstr [0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9] file.txt

您也可能对。。。有兴趣windows 上的 grep

答案2

findstr 不会提取匹配项。它仅返回找到的字符串。我建议在处理正则表达式时使用 powershell。您可以执行以下操作:

select-string -Path 'c:\input.txt -Pattern '\d{5}-\d{5}' -AllMatches | % { $_.Matches } | % { $_.Value } > 'c:\output.txt'

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string?view=powershell-7

编辑:我错了,findstr 不能返回匹配,但我仍然建议使用 powershell 来进行正则表达式。

相关内容