findstr

Выполняет поиск шаблонов текста в файлах.

Синтаксис

findstr [/b] [/e] [/l | /r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/f:<file>] [/c:<string>] [/g:<file>] [/d:<dirlist>] [/a:<colorattribute>] [/off[line]] <strings> [<drive>:][<path>]<filename>[ ...]

Параметры

Параметр Описание
/b Соответствует шаблону текста, если оно находится в начале строки.
/e Соответствует шаблону текста, если он находится в конце строки.
/l Обрабатывает строки поиска буквально.
/r Обрабатывает строки поиска в виде регулярных выражений. Этот параметр принимается по умолчанию.
/s Выполняет поиск текущего каталога и всех подкаталогов.
/i Игнорирует регистр символов при поиске строки.
/x Печатает строки, соответствующие точно.
/v Печатает только строки, не содержащие совпадения.
/N Выводит номер строки каждой строки, которая соответствует.
/m Выводит только имя файла, если файл содержит совпадение.
/o Выводит смещение символов перед каждой соответствующей строкой.
/p Пропускает файлы с непечатаемыми символами.
/off[line] Не пропускает файлы с автономным набором атрибутов.
/F:<file> Возвращает список файлов из указанного файла.
/C:<string> Использует указанный текст в качестве строки поиска литерала.
/Г:<file> Возвращает строки поиска из указанного файла.
/D:<dirlist> Выполняет поиск указанного списка каталогов. Каждый каталог должен быть разделен точкой с запятой (например dir1;dir2;dir3, ;).
/a:<colorattribute> Задает атрибуты цвета с двумя шестнадцатеричными цифрами. Введите color /? дополнительные сведения.
<strings> Указывает текст для поиска в имени файла. Обязательный.
[\<drive>:][<path>]<filename>[...] Указывает расположение и файлы для поиска. Требуется по крайней мере одно имя файла.
/? Отображает справку в командной строке.

Замечания

  • Все параметры командной строки findstr должны предшествовать строкам и имени файла в командной строке.

  • Регулярные выражения используют как литеральные символы, так и мета-символы для поиска шаблонов текста, а не точных строк символов.

    • Литеральный символ — это символ, который не имеет специального значения в синтаксисе регулярных выражений; вместо этого он соответствует вхождениям этого символа. Например, буквы и цифры являются литеральными символами.

    • Мета-символ — это символ со специальным значением (оператором или разделителем) в синтаксисе регулярных выражений.

      Допустимые мета-символы:

      Мета-символ Значение
      . Wild карта — любой символ
      * Повторите — ноль или больше вхождения предыдущего символа или класса.
      ^ Начальная позиция строки — начало линии.
      $ Конечная позиция линии — конец строки.
      [class] Класс символов — любой символ в наборе.
      [^class] Обратный класс — любой символ, не в наборе.
      [x-y] Диапазон — любые символы в указанном диапазоне.
      \x Escape - литеральное использование мета-символа.
      \<string Начальная позиция слова — начало слова.
      string\> Окончание позиции слова — конец слова.

      Специальные символы в синтаксисе регулярных выражений имеют большую мощность при их совместном использовании. Например, используйте сочетание символов wild карта () и повторите (.*), чтобы соответствовать любой строке символов:.*

      Используйте следующее выражение как часть большего выражения, чтобы соответствовать любой строке, начиная с b и заканчивая ing: b.*ing

  • Чтобы найти несколько строк в наборе файлов, необходимо создать текстовый файл, содержащий каждый критерий поиска в отдельной строке.

  • Используйте пробелы для разделения нескольких строк поиска, если аргумент не префиксирован с помощью /c.

Примеры

Чтобы найти привет или в файле x.y, введите следующее:

findstr hello there x.y

Чтобы найти привет в файле x.y, введите следующее:

findstr /c:"hello there" x.y

Чтобы найти все вхождения слова Windows (с начальной буквой W) в файле proposal.txt, введите:

findstr Windows proposal.txt

Для поиска каждого файла в текущем каталоге и всех подкаталогах, содержащих слово Windows, независимо от регистра буквы, введите:

findstr /s /i Windows *.*

Чтобы найти все вхождения строк, которые начинаются с FOR и предшествуют нулю или нескольким пробелам (как в цикле компьютерной программы), а также для отображения номера строки, в которой найдено каждое вхождение, введите:

findstr /b /n /r /c:^ *FOR *.bas

Чтобы указать точные файлы, которые нужно найти в текстовом файле, используйте критерии поиска в файле stringlist.txt, для поиска файлов, перечисленных в filelist.txt, а затем, чтобы сохранить результаты в файле results.out, введите:

findstr /g:stringlist.txt /f:filelist.txt > results.out

Чтобы перечислить каждый файл, содержащий компьютер word в текущем каталоге и всех подкаталогах, независимо от регистра, введите:

findstr /s /i /m \<computer\> *.*

Чтобы перечислить каждый файл, содержащий компьютер слова и любые другие слова, начинающиеся с комп, (например, комплимент и конкуренция), введите:

findstr /s /i /m \<comp.* *.*