Удалить в файле все строки, содержащие ключевое слово

Пишу себе очередную шпаргалку на будущее. Может кому-нибудь это тоже пригодится. Итак, в случае работы с Windows людям нашего поля деятельности часто приходится работать с текстовыми файлами (логами, конфигурациями и т.д.) и очень важно освоить какой-нибудь удобный текстовый редактор помимо notepad.exe, имеющий дополнительный полезный функционал.

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

Для меня таким редактором чаще всего является Notepad++, который считаю просто Must Have и ставлю одним из первых приложений себе. Уже писал ранее, как с его помощью можно сравнивать два текстовых файла и показывать различающиеся строки.

Сегодня хочу рассказать ещё об одном применении – удалении строк, содержащих определённое ключевое слово. Вариантов использования может быть много, порой у меня возникала необходимость сделать такую вещь, возможно у вас тоже. Или возникнет. И тогда вспомните, что на сайте лил-админ была статья, как это можно сделать :)

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

Открываем error_log и делаем поиск по ключевым словам “LOGIN FAIL” только делаем это не на вкладке “Найти”, а на вкладке “Пометки” (того же диалогового окна поиска).

Не забываем отметить опцию “Пометить закладкой” и нажимаем кнопку “Пометить всё”.

В тексте у нас будут подсвечены нужные строки и напротив номера строки появится закладка – синий кружок.

Теперь переходим в меню “Поиск” – “Закладки” и выбираем то, что нужно – “удалить все строки без закладки” или “удалить все строки с закладкой”.

Таким образом, в первом случае можно отмечать “мусорные” строки и удалять их, а во втором случае – удалить всё остальное, кроме необходимых. Смотря, что нужнее/быстрее.

Лично мне такая функция частенько очень упрощает работу. Возможно кому-то тоже поможет обработать большой массив строк.

P.S. Строки метить можно не только по прямым ключевым словам, но и с использованием RegExp. Например, так я отбираю строки, содержащие IP-адреса. Сперва фильтрую по RegExp и удаляю всё, что IP не содержит. Затем по фильтру удаляю строки, содержащие мой локальный IP, остаются только “белые”.

Like this post? Please share to your friends:
Litl-Admin.ru

Comments:

Leave a Reply