windows - findstr 在一行中显示匹配项

标签 windows batch-file findstr

我有两个文件:

1.txt:

abc
def

2.txt:

abc

请注意,2.txt 仅包含 3 个字符,没有空行。现在如果我这样做:

findstr /S /I /L /A:02 "abc" *

我得到这个结果:

1.txt:abc
2.txt:abc

这是我所期望的。但是,将 1.txt 重命名为 uno.txt,将 2.txt 重命名为 duo.txt(从而更改文件搜索顺序)并运行相同的命令后,我得到以下结果:

duo.txt:abcuno.txt:abc

结果在一行中,而我像以前一样期待两行。当然,如果我在 duo.txt 末尾添加新行,那么输出就可以了,但是如何在不修改文件的情况下做到这一点? findstr 中有一些“强制结果换行”选项吗?

最佳答案

您可以尝试使用 FOR 循环来遍历文件并将每个文件的内容通过管道传输到 FINDSTR

类似这样的事情:

@ECHO OFF

FOR /R %%f IN (*.txt) DO (
  TYPE %%f | FINDSTR /S /I /L "abc"
)

关于windows - findstr 在一行中显示匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989328/

相关文章:

regex - 如何在 Windows 上的 findstr 中指定空格?

batch-file - findstr 输出到文件中的问题

windows - Windows Performance Counter 的工作范式是什么?

c# - Windows 8 应用程序中的屏幕分辨率检测

batch-file - 遍历批处理文件中的一堆 url

windows - 如何在指定的日期/时间运行 bat 文件?

windows - 忽略空值或批量输入

batch-file - 使用批处理删除文件中的部分字符串

windows - 批处理文件从txt文件中删除前10个字符

mysql - 本地使用MySQL数据库