我想在 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'
编辑:我错了,findstr 不能返回匹配,但我仍然建议使用 powershell 来进行正则表达式。