如何使用FINDSTR只获得匹配模式的行号

我被困在Windows批处理(CMD)模式search。 我需要在文件中search一个模式,并需要返回行号。 我使用FINDSTR/X选项的FINDSTR ,但它也将图案匹配线添加到行号。

另外我没有权限安装任何像unix-utilities这样的工具,这样我就可以使用cut来提取行号了。

Endoro发布了一个很好的纯批量解决方案。

另一个选择是使用我写的称为REPL.BAT的混合JScript /批处理实用程序,它执行正则表达式搜索并替换标准输入,并将结果写入标准输出。 它纯粹是基于脚本的,所以不需要安装可执行文件。 它适用于从XP以后的任何现代Windows机器上。 REPL.BAT在这里可用 。

假设REPL.BAT在你的当前目录中,或者更好,在PATH中的某个地方:

 findstr /n "pattern" "file.txt"|repl :.* "" 
 for /f "delims=:" %%a in ('findstr /n "pattern" "file"') do echo "pattern" found in line #%%a