如何查找包含两个字符串的所有文件?

3
我的问题是创建一个批处理文件用于Windows,遍历大量文件并找到每个包含两个指定字符串的行。如果整个文件都包含这些字符串,那就不够好,它们应该在同一行。
例如,我有5个文件,它们包含以下内容:
1st: apple:green
2nd: apple
green
3rd: green
apple
4th: apple: yellowgreen
5th: apple: green

它应该返回第一个、第四个和第五个文件的文件名。

这是我已经有的内容:

FINDSTR /s /i /m "apple green" *.txt | FINDSTR "\MyDirectory" >> results.txt

我该如何修改这个以使其正常工作?

1
要获取更多解决方案,请参阅如何使用findstr在一行中搜索多个字符串? - Mofi
你应该选择最符合你问题的答案作为被采纳的答案。 - OzW
2个回答

3
findstr /i /s /m /r /c:"apple.*green" /c:"green.*apple" *.txt

2

使用FINDSTR进行编辑

这个正则表达式对我很有效:"apple.*green green.*apple"

另外,你的写入文件命令和管道对我来说无效(也许我缺少一些东西)。如果它对你不起作用,也许这个命令可以:

FINDSTR /s /i /m "apple.*green green.*apple" *.txt >> results.txt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接