Назад | Перейти на главную страницу

Windows findstr с условием И

Привет, я просмотрел несколько старых сообщений, но не нашел точного решения. так что отправляем новый вопрос.

Мне нужна одна команда Windows для поиска двух слов с использованием условия И. Будет ли 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 = вставить и word2 = tableA правильно AND порядок ("insert.*.tableA")
  • нечувствительный регистр (/I) чтобы соответствовать INSERT TABLEA

Я не тестировал все варианты использования, но это должно стать хорошим началом для вас.

С этого момента вам нужно проанализировать некоторые файлы правил и передать переменные в команду выше, это другая история, но не findstr вопрос.