При поддержке компании Mobatime Systems: лидера в разработке, производстве и продаже приборов и систем времени. Подробнее...
Сайт · Форум · Инструменты WindowsFAQ.ru - Сайт о Windows, компьютерах, системном администрировании, локальных сетях

Поиск

Друзья

Клуб любителей ASPLinux
Kerio Winroute Firewall инструкции настройки

Шаблоны

New_WindowsFAQ
Главная arrow FAQ arrow Командная строка arrow Findstr
Findstr Версия для печати
Автор SavageNoName   

Поиск образцов текста в файлах с использованием регулярных выражений.

Синтаксис

findstr [/b] [/e] [/l] [/r] [/s] [/i] [/x] [/v] [/n] [/m] [/o] [/p] [/offline] [/g:файл] [/f:файл] [/c:строка] [/d:СписокКаталогов] [/a:АтрибутЦвета] [строки] [[диск:][путь] ИмяФайла [...]]

Параметры

/b Сравнивает шаблон с началом строки. /e Сравнивает шаблон с концом строки. /l Использует заданную строку буквально. /r Использует строку поиска как регулярное выражение. Команда Findstr интерпретирует все метасимволы как регулярные выражения, если не используется ключ /l. /s Задает поиск файлов в текущем каталоге и его подкаталогах. /i Задает поиск без различия строчных и заглавных букв. /x Печатает точно совпавшие строки. /v Печатает строки, не содержащие совпадений. /n Печатает в начале совпавшей строки ее номер. /m Печатает только имя файла при обнаружении совпадения. /o Печатает смещение перед выводом строки с совпадением. /p Пропускает файлы с непечатаемыми символами. /offline Обработка файлов с автономным атрибутом. /f:файл Читает список из заданного файла. /c:строка Использует заданный текст как литеральную строку поиска. /g:файл Получает строки поиска из заданного файла. /d:СписокКаталогов Ищет в списке каталогов, разделенном запятыми. /a:АтрибутЦвета Задает атрибуты цвета двумя шестнадцатеричными цифрами. строки Текст, поиск которого производится в файле, заданном параметром ИмяФайла. [диск:][путь] ИмяФайла [...] Файл или несколько файлов для поиска. /? Отображение справки в командной строке.

Заметки

  • Использование регулярных выражений с командой findstr

    Команда findstr способна выполнять точный поиск текста в любом текстовом файле или файлах формата ASCII. Однако иногда имеется только часть информации, которая должна быть найдена, или требуется найти информацию в широком диапазоне. В таких случаях команда findstr предоставляет мощную возможность поиска с использованием регулярных выражений.

    В противоположность точному заданию строки символов для поиска, регулярные выражения позволяют задать образец текста. Для задания образца используются литералы и метасимволы. Каждый символ, который не имеет специального значения в регулярных выражениях, рассматривается как литерал и должен точно совпасть при поиске. Например, буквы и цифры являются литеральными символами. Метасимволы — это символы со специальным значением (оператор или разделитель) в регулярных выражениях.

    В приведенной ниже таблице перечислены метасимволы, допустимые для команды findstr.

    Символ

    Значение

    .

    Подстановочный знак: любой символ

    *

    Повтор: ноль или более предшествующих символов или классов символов.

    ^

    Позиция строки: начало строки

    $

    Позиция строки: конец строки

    [класс]

    Класс символа: любой символ из множества

    [^класс]

    Инвертированный класс: любой символ из множества

    [x-y]

    Диапазон: любой символ из диапазона

    \x

    Исключение: использование метасимвола x в качестве литерала

    \<xyz

    Позиция слова: начало слова

    xyz\>

    Позиция слова: конец слова

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

    .*

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

    b.*ing

Примеры

Для отделения строк поиска друг от друга следует использовать пробелы, кроме тех случаев, когда задан ключ /c. Для поиска слова "hello" или "there" в файле x.y введите следующую каманду:

findstr "hello there" x.y

Для поиска словосочетания "hello there" в файле 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 /c:" *FOR" *.bas

Если требуется найти несколько разных наборов символов в нескольких файлах, можно создать текстовый файл, каждая строка которого содержит образец для поиска. Также можно задать точный список файлов, если поиск будет производиться в текстовых файлах. Для использования файла Finddata.txt, содержащего образцы для поиска, файла Filelist.txt, содержащего список файлов, в которых будет производиться поиск, и записи результатов работы программы в файл Results.out служит следующая команда:

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

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

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

Теперь, предположим, требуется найти не только само слово "computer", но и все другие слова, начинающиеся с тех же букв, таких как "compliment" и "compete". Введите следующую команду:

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

 
< Find   Finger >

Сервер NTP

Время, полученное с NTP-сервера. Для просмотра должен быть разрешён Java-script.
Время, полученное с Вашего компьютера. Для просмотра должен быть разрешён Java-script.

Доступ к серверу NTP первого стратума
Подробнее

На форуме

Лента RSS

Mobatime - Автору - Рекламодателю - Веб-мастеру - Контакт - История - Наверх
© Владислав Семёнов aka SavageNoName 2003-2016
При любом использовании материалов ссылка на WindowsFAQ.ru обязательна
Сайту 12 лет, 11 месяцев и 2 дня. Форуму 16 лет, 3 месяца и 15 дней.