Непосвященным такой инструмент поиска по шаблонам, как findstr, может показаться бесполезным. Но когда вы имеете дело с файлами журналов, созданными системой, или выводами командной строки, содержащими сотни строк текста, findstr — именно тот инструмент, который вам нужен.
Пользователи операционной системы Linux уже знакомы с невероятной полезностью команды Grep, а findstr выполняет аналогичную роль в Microsoft Windows. Вы можете объединить его с другие команды с помощью каналов или просто запустить его напрямую для анализа нескольких текстовых файлов. Давайте посмотрим, как работает findstr, на нескольких примерах.
Использование команды Findstr
Основной синтаксис прост: findstr <строка><путь к файлу>, где <строка>— это шаблон для поиска, а <путь к файлу>— это адрес файла для поиска. Откройте командную строку и попробуйте. .
findstr SFC example1.txt
Эта команда найдет и выведет все строки, содержащие строку поиска SFC. Обратите внимание, что по умолчанию findstr чувствителен к регистру, поэтому любые упоминания SFC не будут сопоставлены.
Параметры
Вы можете дополнительно настроить работу findstr, включив необязательные параметры. Переключатели типа /B или /I изменяют поведение findstr, накладывая дополнительные условия на поиск. Например:
findstr /I SFC example1.txt
Включение /I в качестве параметра делает поиск нечувствительным к регистру, позволяя совпадать всем упоминаниям термина, независимо от их написания. Список всех параметров findstr можно найти в официальная документация Microsoft.
Необязательные шаблоны
Параметры — не единственный способ настройки findstr. Например, заключение
findstr «SFC DISM» example1.txt
Приведенное выше вернет соответствующие строки, содержащие любой из терминов. Это делает его полезным при поиске упоминания предмета с разными названиями.
Регулярные выражения
Findstr способен выполнять поиск по нескольким файлам. Изменение
findstr SFC *.txt
Использование подстановочного знака сопоставляет регулярное выражение всем текстовым файлам в текущем каталоге и его подкаталогах. Результаты также разделяются по именам файлов, что позволяет увидеть, какая строка из какого файла взята.
Трубы
Как и большинство команд cmd, findstr также можно использовать для вывода других команд. Просто добавьте канал после окончания целевой команды и вызовите findstr без
режиссер | findstr.txt
При этом выполняется поиск findstr по выходным данным команды dir, возвращая список файлов, заканчивающийся на .txt. Конечно, этот конкретный пример на практике бесполезен, поскольку dir уже может найти файлы одного типа с помощью регулярного выражения.
Можно также выбрать более длинный маршрут перенаправление вывода в текстовый файл, а затем использовать findstr для текстового файла, но так проще обойтись без посредников.
Приложения Findstr в Windows
Очевидное использование findstr легко понять уже из синтаксиса. Вы можете искать текстовые файлы с определенной текстовой строкой или проверять, содержится ли в файле определенная строка.
Хотя это теоретически полезно, оно редко используется за исключением редких случаев. В эпоху облачных сервисов, таких как Google Docs, у большинства людей уже нет большого количества текстовых файлов.
Фактическое применение findstr немного более тонкое и требует более мощных результатов. Вот несколько наиболее интересных примеров.
Поиск определенных типов файлов
Команда dir уже включает возможность поиска имен файлов с использованием регулярных выражений. Но с помощью findstr вы можете искать файлы, имеющие другие атрибуты, например время или дату создания.
Предположим, ошибка произошла в 18:43, и вы хотите найти все файлы журналов, созданные в это время. С помощью одной только команды dir вам придется вручную просмотреть результаты или получить все файлы журналов и сравнить их. Используя findstr, это становится простой командой.
режиссер | findstr 06:43
Вы можете попробовать тот же трюк, чтобы найти файлы, созданные в определенную дату, или получить список каталогов.
режиссер | findstr DIR
Фильтрация сетевой информации с помощью Netstat.
Нетстат — это удобная команда Windows, которая предоставляет вам всю информацию о сетевых подключениях вашего компьютера — слишком много информации, и здесь на помощь приходит findstr.
Передача вывода netstat в findstr позволяет искать соединения с определенными свойствами. Например, так можно получить список всех установленных соединений.
netstat | findstr УСТАНОВЛЕНО
Этот трюк полезен при диагностике проблем с сетью. Вы даже можете использовать findstr с PID приложения, чтобы найти все соединения, открытые определенным процессом.
netstat -o | findstr 13120
Получение определенных IP-адресов
Команда ipconfig позволяет просмотреть подробную информацию обо всех сетевых интерфейсах систем, включая IP-адреса. Вы можете использовать findstr для извлечения определенного типа IP-адреса без необходимости прокручивать его целиком.
ipconfig | findstr Временный
Вы можете расширить этот метод, чтобы получить любую информацию из ipconfig, от масок подсети до адресов шлюзов.
Анализ файлов сценариев
На каком бы языке программирования вы ни писали код, файлы сценариев в конечном итоге представляют собой просто текст. Это означает, что вы можете использовать findstr для анализа сценариев и получения определенных разделов, не просматривая весь код.
Предположим, мы хотим увидеть, как оператор if использовался в определенном скрипте. Мы можем использовать следующую команду:
findstr if script.ahk
Это не только отобразит строки, в которых используется оператор if, но также покажет нам использованные выражения. Вы также можете включить параметр /N для отображения номеров строк, что очень удобно для файлов сценариев.
findstr /N if script.ahk
Стоит ли использовать Findstr?
Основная трудность при навигации по интерфейсу командной строки — это объем текста, который необходимо просмотреть. Findstr – важный инструмент для извлечения полезной информации и фильтрации ненужного мусора.
Поскольку все команды терминала выдают текстовый вывод, findstr всегда можно использовать для поиска соответствующих данных. От устранение проблем с сетью до поиска правильных файлов — каждое действие становится более эффективным с помощью findstr..
Даже помимо взаимодействия с другими командами, findstr полезен благодаря своей способности просматривать содержимое текстовых файлов. Вы можете найти конкретные ошибки в файлах журналов, созданных машиной, или получить фрагменты кода в сложном скрипте.
Коротко говоря, findstr — незаменимый инструмент в арсенале любого опытного пользователя Windows, особенно того, кто собирается познакомиться с интерфейсом командной строки.
.