Findstr

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

Синтаксис

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



Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).



Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь





HTML и CSS
корректный
my counter

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница