Команда FINDSTRПри необходимости обработки метасимволов как обычных элементов текста, в регулярных выражениях используется экранирующий символ - обратная косая черта \ . Запись \[ означает обычный символ раскрывающейся квадратной скобки, а не метасимвол для начала набора. Для экранирования нескольких метасимволов используется последовательность : \Q . . . набор метасимволов . . .\E Обратная косая черта перед обычным символом означает, что он интерпретируется как служебный символ: \s - соответствует символу пробела. При использовании в регулярных выражениях, строчные и заглавные символы различаются. \S - любой символ, не пробел. Формат командной строки FINDSTR: FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:файл] [/C:строка] [/G:файл] [/D:список_папок] [/A:цвета] [/OFF[LINE]] строки [[диск:][путь]имя_файла[ ...]] /B - Искать образец только в началах строк. /E - Искать образец только в конце строк. /L - Поиск строк дословно. /R - Поиск строк как регулярных выражений. /S - Поиск файлов в текущей папке и всех ее подпапках. /I - Определяет, что поиск будет вестись без учета регистра. /X - Печатает строки, которые совпадают точно. /V - Печатает строки, не содержащие совпадений с искомыми. /N - Печатает номер строки, в которой найдено совпадение, и ее содержимое. /M - Печатает только имя файла, в которой найдено совпадение. /O - Печатает найденный строки через пустую строку. /P - Пропускает строки, содержащие непечатаемые символы. /OFF[LINE] - Не пропускает файлы с установленным атрибутом "Автономный". /A:цвета - Две шестнадцатеричные цифры - атрибуты цвета. См. "COLOR /?" /F:файл - Читает список файлов из заданного файла (/ для консоли). /C:строка - Использует заданную строку как искомую фразу поиска. /G:файл - Получение строк из заданного файла (/ для консоли). /D:список_папок - Поиск в списке папок (разделяются точкой с запятой). строка - Искомый текст. [диск:][путь]имя_файла - Задает имя файла или файлов. Для разделения нескольких искомых строк, если аргумент не имеет префикса /C, используется пробел. Например, FINDSTR "Привет мир" file.txt поиск "Привет" или "мир" в файле file.txt FINDSTR /C:"Привет мир" file.txt поиск строки "Привет мир" в файле file.txt. Краткую справку по использованию команды FINDSTR можно получить при использовании ключа /?: FINDSTR /? Кроме параметров командной строки, справка дополнена краткой сводкой по синтаксису регулярных выражений: . - Любой символ. * - Повтор: ноль или более вхождений предыдущего символа или класса ^ - Позиция в строке: начало строки $ - Позиция в строке: конец строки [класс] - Класс символов: любой единичный символ из множества [^класс] - Обратный класс символов: любой единичный символ из дополнения [x-y] - Диапазон: любые символы из указанного диапазона \x - Служебный символ: символьное обозначение служебного символа x \< xyz - Позиция в слове: в начале слова xyz\ > - Позиция в слове: в конце слова За полной информацией о регулярных выражениях FINDSTR обратитесь к доступной интерактивной документации. Примеры использования FINDSTR: findstr /M [0-9] %temp%\*.* - отобразить список файлов ( ключ /M ), в которых содержатся цифры ( набор 0-9 ) из каталога временных файлов ( определяется %TEMP% ) findstr /P /I "Error" %temp%\*.* - Отобразить строки, содержащие слово Error . Поиск строк выполнять без учета регистра символов ( ключ /I ), строки, содержащие непечатаемые символы, не отображать ( ключ /P ) . findstr /M /I /C:"network error" %windir%\system32\*.exe - отобразить список исполняемых файлов из системного каталога Windows\system32, в которых встречается строка "network error " findstr /s /I /A:f4 /O /C:"failed" C:\*.log - отобразить строки файлов с расширением log, содержащие слово failed. Имя файла и смещение строки относительно его начала отображать красными символами на белом фоне ( ключ /A:F4 ). Поиск выполняется во всех файлах .log корневого каталога диска C: и всех его подкаталогов ( ключ /S ) findstr /A:FC /N /s /i "\< comput.*" *.* - отобразить строки, содержащие слово, начинающееся с " comput" ( compute, computer, computers и т. д. ), а также имена файлов и номера строк ( ключ /N ). findstr /A:FC /N /s /i "\< правильн.*" *.* - как и в предыдущем случае, но ищется строка, содержащая слово, начинающееся с подстроки правильн. При использовании символов русского языка нужно учитывать их кодировку, поскольку коды символов в DOS- и Windows - кодировке различаются. В командных файлах, когда необходимо выполнять поиск строк, содержащих символы национального алфавита, шаблон для поиска должен быть представлен в той же кодировке, что и содержимое файла. Можно использовать переключение кодовой страницы перед поиском: REM переключаемся на Windows - кодировку chcp 1251 REM Выполняем поиск findstr /A:FC /N /s /i "\< правильн.*" *.* REM Переключаемся на DOS - кодировку chcp 866 REM Выполняем поиск findstr /A:FC /N /s /i "\< правильн.*" *.* |
|