如何使用FINDSTR仅获取匹配模式的行号

时间:2013-08-22 06:34:44

标签: windows batch-file cmd pattern-matching findstr

我陷入了Windows批处理(cmd)模式搜索。我需要在文件中搜索模式,并需要返回行号。我使用了FINDSTR /X选项,但它也将图案匹配的行附加到行号。

此外,我没有权限安装任何实用程序,如unix-utilities,以便我可以使用cut来提取行号。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

另一种选择是使用我写的名为REPL.BAT的混合JScript /批处理实用程序,它执行正则表达式搜索并替换stdin并将结果写入stdout。它纯粹基于脚本,因此不需要安装任何可执行文件。它适用于从XP开始的任何现代Windows机器。 REPL.BAT is available here

假设REPL.BAT位于您当前的目录中,或者更好,位于PATH中的某个位置:

findstr /n "pattern" "file.txt"|repl :.* ""