我被困在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