findstr

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

Syntax

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>[ ...]

Parameters

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

Remarks

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

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

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

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

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

      Meta-character Value
      . Wildcard - Любой символ
      * Повторить — ноль или более вхождений предыдущего символа или класса.
      ^ положение начальной строки — начало строки.
      $ положение конечной строки — конец строки.
      [class] Класс символов - Любой символ в наборе.
      [^class] Обратный класс - Любой символ, не входящий в набор.
      [x-y] Range - Любые символы в указанном диапазоне.
      \x Escape - Буквальное использование мета-символа.
      \<string начальной позиции слова — начало слова.
      string\> Окончание позиции слова - конец слова.

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

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

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

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

Examples

Чтобы найти hello или there в файле x.y, введите:

findstr hello there x.y

Чтобы найти там hello в файле 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

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

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

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

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