Windows-7

帶有 AND 條件的 Windows findstr

  • July 20, 2016

嗨,我搜尋了一些較舊的文章,但沒有找到確切的解決方案。所以發布新問題。

我需要一個 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 命令。但沒有成功。批處理文件中是否有任何等效的命令?

提前致謝。

鑑於您的範例,我能夠產生預期的結果:

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

假設 :

  • sample.txt包含您提供的範例文件內容
  • word1=insert 和 word2=tableA 以正確的AND順序 ( "insert.*.tableA")
  • 不區分大小寫 ( /I) 以匹配INSERT TABLEA

我沒有測試每個案例,但應該是你改進的一個好的開始。

從現在開始,由你來解析一些規則文件並將變數傳遞給上面的命令,這是另一回事,但不是findstr問題。

引用自:https://serverfault.com/questions/790825