2

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

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

4

2 回答 2

5
for /f "delims=:" %%a in ('findstr /n "pattern" "file"') do echo "pattern" found in line #%%a
于 2013-08-22T06:52:03.283 回答
4

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

另一种选择是使用我编写的名为 REPL.BAT 的混合 JScript/批处理实用程序,它在标准输入上执行正则表达式搜索和替换,并将结果写入标准输出。它完全基于脚本,因此不需要安装可执行文件。它适用于从 XP 开始的任何现代 Windows 机器。REPL.BAT 可在此处获得

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

findstr /n "pattern" "file.txt"|repl :.* ""
于 2013-08-22T17:40:12.450 回答