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

 
Доставка в
 
Тернопіль тернополь бровары черкассах котовск глухов токмак запорожье крым бердичев винница боярка Бабанка Байбузы Балаклея Белозорье Будище Бужанка Бузуков Валява Васильков Ватутино Вербовец Вергуны Верхнячка Вильховец Вознесенское Гельмязов Геронимовка Городище Дзензеловка Драбов Дубиевка Ерки Жашков Звенигородка Золотоноша Иваньки Ирдынь Ирклиев Каменка Канев -- Александровка Бабинцы Багрин Барышевка Безпятное Белая Церковь Белогородка Березань Беспечная Блиставица Богдановка Богуслав Борисполь Боровая Бородянка Бортничи Боярка Бровары Бузовая Буча Васильков Вишневое Володарка Ворзель Вороньков Вышгород Гатное Глеваха Гнидын Гоголев Гореничи Горенка Гостомель Гребенки Григорьевка Гуровщина Дениховка Диброва Дмитровка Довгалевское Дослидницкое Дымер Жовтневое Зазимье Згуровка Иванков Ирпень Йосиповка Кагарлык Калиновка Капитановка Кашперовка Княжичи Кодра Козин Коцюбинское Красиловка Красное Крюковщина Ксаверовка Летки Липовка Лука Лукьяновка Макаров Мархаловка Мироновка Мотыжин Музычи Немешаево Новоселки Новые безрадичи Новые петровцы Обухов Озирне Паляничинцы Переяслав-Хмельницкий Песковка Петровское Петропавловская Борщаговка Пилиповка Пилипча Плесецкое Подгорцы Полесское Процев Пустоваровка Пуховка Ракитное Ржищев Рогозов Рожны Росава Рославичи Саливонки Самгородок Сеньковка Ситняки Сквира Софиевская Борщаговка Стайки Тарасовка Тараща Терезино Тетиев Требухов Узин Украинка Устимовка Фастов Фесюри Фурсы Ходосовка Хотов Чабаны Червоная слобода Чернобыль Черногородка Чубинское Шамраевка Шибене Шкаровка Щасливое Юрковка Юровка Яготин Ясногородка Киев

Статистика  
 

Онлайн всего: 1
Гостей: 1
Пользователей: 0