相当于Windows中的findstr命令的`grep -o`

时间:2014-06-18 17:31:56

标签: regex batch-file grep findstr

在Unix中,命令grep -o仅打印出匹配的字符串。当您使用正则表达式搜索模式时,这非常有用,并且只对完全匹配而不是整行的内容感兴趣。

但是,我无法为Windows命令findstr找到类似的东西。是否可以替代仅在Windows中打印匹配的字符串?

例如:

grep -o "10\.[0-9]+\.[0-9]+\.[0-9]+" myfile.txt

上述命令仅打印myfile.txt格式的10.*.*.*中的IP地址,但不打印包含此类IP地址的整行。

2 个答案:

答案 0 :(得分:1)

的PowerShell:

select-string '10\.[0-9]+\.[0-9]+\.[0-9]+' myfile.txt | foreach-object {
   $_.Matches[0].Groups[0].Value
}

答案 1 :(得分:0)

通过下载此UnxUtils(准备就绪的.exe二进制文件),只需使用您熟悉的grep和其他出色的Linux命令。为方便起见,将其添加到您的PATH环境变量