Findstr: примеры и советы по использованию этого удобного инструмента CMD для Windows

Для непосвященных инструмент поиска шаблонов, такой как findstr, может показаться бесполезным. Но при работе с файлами журналов, созданными системой, или выводами командной строки, содержащими сотни строк текста, findstr — именно то, что вам нужно.

Пользователи операционной системы Linux уже знакомы с невероятной полезностью команды Grep , и findstr выполняет аналогичную роль в Microsoft Windows . Вы можете комбинировать его с другими командами,(other commands) используя каналы, или просто запускать его напрямую для анализа нескольких текстовых файлов. Давайте посмотрим, как работает findstr, на нескольких примерах.

Использование команды Findstr

Основной синтаксис прост — findstr , кудаэто шаблон для поиска, и— это адрес файла для поиска. Откройте командную строку(Command Prompt) и попробуйте.

findstr SFC example1.txt

Эта команда найдет и выведет все строки, содержащие строку поиска SFC . Обратите внимание, что по умолчанию findstr чувствителен к регистру, поэтому любые упоминания SFC не будут сопоставляться.

Параметры

Вы можете дополнительно настроить работу findstr, включив необязательные параметры. Такие ключи, как /B или /I, изменяют поведение findstr, накладывая дополнительные условия на поиск. Например:

findstr /I SFC example1.txt

Включение /I в качестве параметра делает поиск нечувствительным к регистру, позволяя совпадать всем упоминаниям термина, независимо от их написания заглавными буквами. Вы можете найти список всех параметров findstr в официальной документации Microsoft(official Microsoft docs) .

Дополнительные шаблоны

Параметры — не единственный способ настроить findstr. Заключение <string> в кавычки, например, позволяет вам указать несколько шаблонов, давая вам совпадение, если какая-либо из текстовых строк будет найдена.

findstr «SFC DISM» example1.txt

Приведенное выше вернет совпадающие строки, содержащие любой из терминов. Это делает его полезным при поиске упоминания об элементе с разными именами.

Обычные выражения

Findstr может выполнять поиск по нескольким файлам. Изменениек регулярному выражению заставляет команду искать указанный шаблон во всех соответствующих файлах.

findstr SFC *.txt

Использование подстановочного знака сопоставляет регулярное выражение со всеми текстовыми файлами в текущем каталоге и его подкаталогах. Результаты также разделены по именам файлов, что позволяет увидеть, какая строка из какого файла.

Трубы

Как и большинство команд cmd, findstr также можно использовать для вывода других команд. Просто(Just) добавьте вертикальную черту после окончания целевой команды и вызовите findstr без.

dir | findstr .txt

Это запускает поиск findstr на выходе команды dir, возвращая список файлов, заканчивающийся на .txt . Конечно, этот конкретный пример бесполезен на практике, так как dir уже может найти файлы того же типа с помощью регулярного выражения.

Можно также выбрать более длинный путь перенаправления вывода в текстовый файл,(redirecting the output to a text file) а затем использовать findstr в текстовом файле, но проще избавиться от посредника.

Приложения Findstr в Windows

Очевидные возможности использования findstr очевидны уже из одного только синтаксиса. Вы можете искать текстовые файлы с определенной текстовой строкой или проверять, содержится ли в файле определенная строка.

Это, хотя и полезно теоретически, редко используется за исключением редких случаев. В эпоху облачных сервисов, таких как Google Docs , у большинства людей уже не так много текстовых файлов.

Реальное применение findstr немного сложнее и требует более мощных результатов. Вот некоторые из наиболее интересных примеров.

Поиск определенных типов файлов

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

Предположим(Suppose) , что в 18:43 произошла ошибка, и вы хотите найти все файлы журналов, созданные в это время. С помощью одной только команды dir вам придется вручную просеивать результаты или получать все файлы журналов и сравнивать их. Используя findstr, это становится простой командой.

dir | findstr 06:43

Вы можете попробовать тот же трюк, чтобы найти файлы, созданные в определенную дату, или получить список каталогов.

dir | findstr DIR

Фильтрация сетевой информации(Network Information) с помощью Netstat

Netstat — это удобная команда Windows , которая дает вам всю информацию о сетевых подключениях вашего компьютера — слишком много информации, и именно здесь появляется findstr.

Передача вывода netstat в findstr позволяет искать соединения с определенными свойствами. Например, так можно получить список всех установленных соединений.

netstat | findstr ESTABLISHED

Этот трюк полезен при диагностике сетевых проблем. Вы даже можете использовать findstr с PID приложения , чтобы найти все соединения, открытые определенным процессом.

netstat -o | findstr 13120

Получение конкретных IP-адресов

Команда ipconfig позволяет просматривать сведения обо всех сетевых интерфейсах систем, включая IP-адреса. Вы можете использовать findstr для извлечения IP-адреса определенного типа без необходимости прокручивать все это.

ipconfig | findstr Temporary

Вы можете расширить этот метод для получения любой информации из ipconfig, от масок подсети до адресов шлюзов.

Анализ файлов сценариев

На каком бы языке программирования вы ни программировали, файлы скриптов в конечном счете представляют собой просто текст. Это означает, что вы можете использовать findstr для анализа сценариев и извлечения определенных разделов, не просматривая весь код.

Скажем(Say) , мы хотим увидеть, как оператор if использовался в конкретном скрипте. Мы можем использовать следующую команду:

findstr, если script.ahk(findstr if script.ahk )

Это не только отобразит строки с использованием оператора if, но также покажет нам используемые выражения. Вы также можете включить параметр /N для отображения номеров строк, что очень удобно для файлов сценариев.

findstr /N if script.ahk

Стоит ли использовать Findstr?

Основная трудность при навигации по интерфейсу командной строки заключается в количестве текста, который необходимо просеять. Findstr — важный инструмент для извлечения полезной информации и фильтрации ненужной информации.

Поскольку все команды терминала выдают текстовый вывод, findstr всегда можно использовать для поиска нужных данных. От устранения проблем с сетью(troubleshooting network issues) до поиска правильных файлов каждое действие становится более эффективным с помощью findstr.

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

Короче говоря, findstr — незаменимый инструмент в арсенале любого продвинутого пользователя Windows , особенно того, кто собирается познакомиться с интерфейсом командной строки.



About the author

Я старший инженер-программист и разработчик изображений и приложений для iPhone с более чем 10-летним опытом. Мои навыки работы с аппаратным и программным обеспечением делают меня идеально подходящим для любого проекта корпоративного или потребительского смартфона. У меня есть глубокое понимание того, как создавать высококачественные изображения и способность работать со всеми различными форматами изображений. Кроме того, я знаком с разработкой для Firefox и iOS.



Related posts