Использование команды find
Команда find проводит поиск заданной строки или текста в файлах. Команда Cmd.exe отображает каждую строку, которая совпадает со строкой или текстом, указанным в окне коммандной строки. Команда find может быть использована как команда-фильтр и как обычная команда Microsoft Windows XP. Дополнительные сведения об использовании командыfind.
Чтобы использовать команду find в качестве команды-фильтра, необходимо включить символ «меньше» (<) и строку или текст, в котором требуется выполнить поиск. По умолчанию при поиске команда find учитывает регистр. Например, следующая команда будет искать строку "Pacific Rim" в файле Trade.txt:
find "Pacific Rim" < trade.txt
Выход не включает вхождение строки "pacific rim". Встречается вхождение строки "Pacific Rim" с прописными буквами.
Для сохранения результатов работы команды find (вместо отображения их в окне командной строки), введите символ «больше» (>) и имя файла, в котором требуется хранить выход. Например, следующая команда ищет строку "Pacific Rim" в файле Trade.txt с сохранением результата в файле Nwtrade.txt:
find "Pacific Rim" < trade.txt > nwtrade.txt
Использование команды sort
Команда sort выполняет сортировку по алфавиту текстового файла или выхода команды. Например, следующая команда сортирует содержимое файла List.txt и отображает результаты в окне командной строки:
sort < list.txt
В этом примере команда sort сортирует строки файла List.txt в алфавитном порядке и выводит результат на экран без изменения файла. Для сохранения результатов работы команды sort(вместо их отображения) введите символ «больше» (>) и имя файла. Например, следующую команду можно использовать для алфавитной сортировки строк файла List.txt и сохранения результатов в файле Alphlist.txt:
sort < list.txt > alphlist.txt
Для сортировки вывода команды следует ввести команду, затем символ канала (|) и команду sort (команда| sort). Например, следующая команда сортирует в алфавитном порядке строки, которые содержат слово "Jones" (вывод команды find):
find "Jones" maillst.txt | sort
Find
Поиск заданной строки текста в файле или нескольких файлах. После поиска в заданных файлах команда find выведет на экран все строки из этих файлов, содержащие заданный образец.
Синтаксис
find [/v] [/c] [/n] [/i] "строка" [[диск:][путь]ИмяФайла[...]]
Параметры
/v
Выводит все строки, не содержащие строку, заданную параметром строка.
/c
Подсчет строк, содержащих строку, указанную параметром строка, и отображение общего количества.
/n
Выводит номера строк перед самими строками.
/i
Задает поиск без различия строчных и заглавных букв.
"строка_поиска"
Обязательный параметр. Указывает группу символов, поиск которой будет производиться. Необходимо заключить параметр строка в кавычки ("строка").
[диск:][путь] ИмяФайла
Задает местоположение и имя файла, в котором будет производиться поиск заданной строки символов.
/?
Отображение справки в командной строке.
Заметки
- Задание строки
Если ключ /i не указан, команда find ищет именно то, что указано в параметре строка. Например, для команды find символы "a" и "A" являются различными. Если используется ключ /i, команда find не различает строчные и прописные буквы, и символы "a" и "A" являются одинаковыми.
Если строка поиска содержит кавычки, при вызове команды каждая кавычка в строке поиска должна быть заменена двумя символами кавычек ("СтрокаСодержания""Кавычки").
- Использование команды find в качестве фильтра
Если имя файла пропущено, find действует как фильтр, получая ввод из стандартного источника вывода (обычно клавиатура, канал или файл перенаправления), и выводит все строки, содержащие параметр строка.
- Порядок Синтаксиса команды
Параметры и ключи команды find могут быть заданы в произвольном порядке.
- Использование подстановочных знаков
Подстановочные знаки (* и ?) не могут быть использованы в именах файлов и расширениях, задаваемых в команде find. Чтобы искать строку в множестве файлов, указанных с помощью подстановочных знаков, можно использовать команду find в команде for.
- Использование ключей /v или /n с ключом /c
Если в одной команде заданы ключи /c и /v, команда find выведет на экран количество строк, которые не содержат заданную строку поиска. Если в одной команде указаны оба ключа: /c и /n, команда find игнорирует ключ /n.
- Использование команды find со знаками перевода строки
Команда find не распознает символ перевода строки. Когда команда find используется для поиска текста в файле, который содержит символы перевода строки, необходимо ограничить строку поиска текстом, который может быть найден между символами перевода строки (строка не может прерываться символом перевода строки). Например, find не найдет совпадение для строки "файл налогов" если перевод строки в файле стоит между словами "файл" и "налогов".
Примеры
Для вывода всех строк из файла Pencil.ad, которые содержат слова «Точилка» служит следующая команда:
find "Точилка" pencil.ad
Для поиска строки, содержащей текст, указанный в кавычках, необходимо сначала заключить в кавычки всю строку. Во-вторых, необходимо использовать двойные кавычки для каждых кавычек, содержащихся в строке. Поиск Ученый пометил свой документ ""только для дискуссии"". Это не окончательный отчет." В Report.doc введите:
find "Ученый пометил свой документ ""только для дискуссии."" Это не окончательный отчет." report.doc
Если поиск требуется провести в нескольких файлах, следует использовать команду find с командой for. Для поиска файлов с расширением .bat, содержащих строку "PROMPT", можно использовать следующую команду:
for %f in (*.bat) do find "PROMPT" %f
Для поиска на жестком диске C файлов, содержащих строку "CPU" и отображения их имен используйте символ канала (|), чтобы направить результаты команды dir в команду find:
dir c:\ /s /b | find "CPU"
Так как команда find проводит поиск, различая строчные и заглавные буквы, а команда dir выводит результаты заглавными буквами, необходимо задать строку "CPU" заглавными буквами или использовать ключ /i в команде find.
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 может быть использована следующая команда: