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.* *.*