Добавить в корзинуПозвонить
Найти в Дзене
Герман Геншин

9 флагов grep, о которых вам не рассказывали — ускорьте поиск и анализ файлов в Linux в разы!

Оглавление

Если вы по привычке пропускаете вывод grep через ещё кучу команд, чтобы получить нужное, — вы по-настоящему теряете время! В самом grep есть десятки опций: от подсчёта строк и фильтрации шаблонов до ограничения вывода и извлечения нужных фрагментов. Расскажу о девяти реально полезных флагах, с которыми вы моментально найдёте всё, что нужно, не выходя из терминала.

-w: Ищет именно целое слово, а не его часть в других словах

Забудьте о ложных совпадениях внутри длинных слов

Если искать "log" обычным grep, вы получите не только "log", но и "logfile", и "catalog", и "syslog". А хочется увидеть только отдельное слово. Вот тут -w и выручает: он ищет только точные совпадения, отделённые пробелами, границами строк или знаками препинания. Например:

В этом примере grep находит в system.log только те строки, где "log" — самостоятельное слово, а не часть другого.

-2

Зачем копаться в "сырых" логах — визуализируйте данные прямо в терминале

Устали пролистывать километры логов? С этими инструментами вы увидите данные понятнее, разберётесь быстрее и начнёте даже получать удовольствие от дебага.

-c: Только количество совпавших строк

Когда нужен просто счётчик, а не простыня совпадений

Иногда важно узнать просто число совпадений — а не ковыряться в каждой строке. -c выводит не всё содержимое, а только одно, нужное вам число. Больше не надо дописывать wc -l после grep! Например:

Так grep подсчитывает, сколько строк access.log содержат "404", и выводит только итоговое число — экран не забивается лишними строками.

-m: Ограничивает поиск нужным числом совпадений

Когда интересуют только первые совпадения, а не целая простыня вывода

По умолчанию grep покажет абсолютно все совпадения, что в больших файлах легко превращается в хаос. Если вам нужны только первые несколько штук — используйте -m: grep закончит работу, как только найдёт заданное число совпадений. Например:

В этом примере grep после пяти найденных строк с "timeout" в server.log просто завершает поиск, игнорируя остальной файл.

-C: Выводит строки вокруг совпадения (контекст)

Думайте шире — смотрите, что происходит до и после совпадения

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

--include: Рекурсивный поиск только в файлах нужного типа

Помогает отбросить лишнее уже на этапе поиска

Когда вы ищете в большом каталоге, grep обычно лезет во все подряд: и в скрипты, и в логи, и в markdown, и в конфиги. Если нужны только файлы определённого типа, помогите grep с --include: укажите шаблон, и он посмотрит только туда, куда надо. Например:

--include использует звёздочки и вопросительные знаки, как обычные паттерны файлов, а не регулярные выражения.

В примере -r ищет рекурсивно, а --include="*.conf" ограничивает поиск только конфигурационными файлами. Можно указать --include="Makefile" или сразу несколько шаблонов --include="*.{js,ts}". Для ещё более тонкой настройки добавьте --exclude и отсекайте всё лишнее.

-o: Выводит только совпавший кусок, без лишнего текста

Идеально, когда нужна чистая выжимка из "шумного" вывода

Обычно grep показывает всю строку, в которой есть совпадение — но иногда хочется получить только нужный фрагмент. -o выводит исключительно сам совпавший кусок. Если добавить -E (расширенные регулярки), получится очень точное извлечение информации. Например:

В таком сочетании -o выводит, скажем, только IP-адреса, а -E позволяет задать хитрый паттерн для поиска.

-s: Отключает ошибки для файлов, которые невозможно прочитать

Пусть grep не орёт о недоступных файлах!

Если запускать grep рекурсивно по системным папкам, терминал быстро засорится сообщениями "Нет доступа". Особенно много их бывает в /etc/. Флаг -s полностью убирает эти ошибки — grep покажет только реальные совпадения, не засоряя экран служебным "шумом". Количество проверяемых файлов не меняется, меняется только "тишина" в терминале.

В примере -r ищет по /etc/ рекурсивно, -s делает это тихо: всё недоступное пропускается без лишних предупреждений.

-v: Вывести только строки, не совпавшие с шаблоном

Хотите обратный поиск? Вот как быстро отфильтровать лишнее!

Обычно grep ищет совпадения, но нередко нужно наоборот — удалить всё, что лишнее. Флаг -v меняет результат на противоположный: покажет лишь строки, которые НЕ совпали с вашим паттерном. Например, чтобы убрать все комментарии из конфига и оставить только рабочие параметры. -v отлично работает и с регулярками.

В этом примере ^# ищет строки, начинающиеся с # (комментарии), а -v оставляет только строки без них.

-l: Показывает только имена файлов с совпадениями

Быстро находите нужные файлы — без кучи лишнего вывода

Если вы ищете что-то во многих файлах, стандартный grep выдаёт все подходящие строки со всех файлов подряд — и вы тонете в информации. С флагом -l вы увидите только имена файлов, где нашли совпадение — никаких строк, только путь до файла. В паре с -r из тысячи строк останется компактный список.

Здесь -r ищет по ./src/ рекурсивно, -l выводит только имена файлов, где встретился "API_KEY" — быстро и без "мусора".

-3

5 команд Linux, которые сделают чтение огромных файлов проще

Качество поиска важнее его объёма.

Гораздо мощнее, чем кажется: grep способен удивить любого пользователя!

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

-4

Kubuntu Focus M2 Gen 6

Этот ноутбук создавался для разработчиков и профессионалов, которым нужна действительно портативная рабочая станция и игровая машина на Kubuntu Linux. Здесь мощный процессор Intel с частотой до 5,4 ГГц и две видеокарты — интегрированная плюс дискретная NVIDIA 5070 Ti. Подходит для сильных задач: от искусственного интеллекта до современных игр.

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: