带有 AND 条件的 Windows findstr

带有 AND 条件的 Windows findstr

你好,我搜索了一些旧帖子,但没有找到确切的解决方案。所以发布了新的问题。

我需要一个 Windows 命令来使用 AND 条件搜索两个单词。 findstr 是否适用于单词组合?我搜索的是 WORD1,然后是 WORD2。(不是反向搜索。word2 后跟 word1 或单个单词)。

以下是示例文件内容:

TABLEA
insert
INSERT TABLEA
update tableA
upsert tableb
insert into tableA
update staging.tableA
insert into staging.tableA
-- insert into staging.tableA
test insert staging.tableA
tableA insert
tableA select insert

所需的搜索输出:打印文件名当找到匹配项时。例如,word1=insert 和 word2=tableA。以下是示例搜索结果

INSERT TABLEA
insert into tableA
insert into staging.tableA
-- insert into staging.tableA
test insert staging.tableA

我有数千个文件需要搜索,而且文件大小非常大。我需要包含两个单词匹配的文件名。

我尝试使用 findstr 命令。但没有成功。是否有任何等效命令可在批处理文件中使用?

提前致谢。

答案1

根据您的示例,我能够产生预期的结果:

type sample.txt | FINDSTR /I "insert.*.tableA"

假设 :

  • sample.txt包含您提供的示例文件内容
  • word1=insert 和 word2=tableA 按正确AND顺序排列("insert.*.tableA"
  • 不区分大小写 ( /I) 匹配INSERT TABLEA

我没有测试过所有的用例,但这应该对你改进来说是一个好的开始。

从现在开始,您需要解析一些规则文件并将变量传递给上面的命令,这是另一个故事,但不是问题findstr

相关内容