windows - 替换 findstr 命令输出中的字符串

标签 windows string replace cmd

我成功地使用 findstr 在一长串文件中寻找字符串。我将 findstr 的输出重定向到不同的文本文件,但是我需要去掉输出行的开始部分,其中还包含源文件的引用。基础是下面的例子

echo testtest > testing.txt
findstr 'test' *.txt > output.txt //output is 'testing.txt:testtest'

我需要做这样的事情来代替

echo testtest > testing.txt
findstr 'test' *.txt | *something* > output.txt //output is 'testtest'

警告:
我只能使用标准的 CMD 命令,我不能在目标机器上安装新软件

最佳答案

像这样的东西应该可以工作:

@echo off
for /f "delims=: tokens=1*" %%i in ('findstr "test" *.txt') do (
  echo %%j
) >> output.txt

注意所有输入文件必须有尾随换行符,否则当前文件的第一个匹配项可能会附加到前一个文件的最后一个匹配项,如果该匹配项在最后一行:

testtestFOO.TXT:something test other

关于windows - 替换 findstr 命令输出中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477443/

相关文章:

windows - 使用 32 位安装程序删除 64 位注册表项

c - MinGW 中的消息 "unknown type name ' uint8_t'"

c++ - 可以在Windows中没有ROS的情况下安装kdl_parser

regex - 查找并替换为可变文本

mySQL 查询从字段数据中的 <img> 标记中提取/替换 src 参数

python - 从日志写入 csv 时替换字符串

windows - 修改 exe 以使用命令行参数启动而不创建快捷方式

c++ - 时间测量类因字符串输入而变慢

c - 将字符串传递给 C 中的函数 - 带或不带指针?

java - 搜索文本中的字符串模式