
Пайпы — настоящий супер-инструмент в Linux. С их помощью можно соединять команды и выполнять сложные задачи, используя простые утилиты. Но бывает, что пайпы только мешают и замедляют работу, особенно если ты добавляешь их там, где они не нужны.
Многие команды уже умеют всё, что тебе нужно — зачастую без лишних инструментов. Например, ls может сортировать вывод без всякого sort. Я расскажу о самых популярных неэффективных пайплайнах и покажу, на что их стоит заменить.
- grep | wc
- Так делают многие, но grep и сам умеет считать строки!
- cat file | anything
- Бесполезное использование cat: есть способ проще!
- ls | sort
- Встроенная сортировка — это ещё удобнее!
- head | tail
- Как взять нужный диапазон строк одной командой
- grep | head
- Как сразу ограничить вывод — grep это умеет сам!
- sort | uniq
- Дедупликация ещё проще: sort и сам умеет выводить уникальные строки
- Всегда ищи более быстрый и удобный способ!
grep | wc
Так делают многие, но grep и сам умеет считать строки!
Один из самых распространённых приёмов — передавать результат grep в wc, чтобы посчитать строки: wc действительно отлично считает и строки, и слова, и символы, поэтому это кажется удобным.
Но на самом деле сам grep умеет делать то же самое с помощью опции -c или --count — дополнительный wc тут просто лишний.
Эта функция появилась в grep очень давно, так что никаких громоздких пайпов уже давно не нужно!
cat file | anything
Бесполезное использование cat: есть способ проще!
Очень частая ошибка — использовать cat, чтобы передать содержимое файла в другую команду. Хотя cat и создан для объединения файлов, им часто просто скармливают один файл — и всё ради одной цепочки команд.
На самом деле большинство команд, например wc, могут принимать имя файла прямо как аргумент — и в этом случае пайп с cat не нужен вовсе:
А если команда не умеет читать файл напрямую? Даже тогда cat не требуется — в Linux можно подавать файл на вход команде через стандартное перенаправление (<имя_файла).
К этому приёму нужно привыкнуть, но освоив перенаправления, ты откроешь для себя новые возможности командной строки!
Ноутбук с Linux Intel NUC13
Выбери один из трёх процессоров Intel и установи любую любимую Linux на этот мини-ПК.
ls | sort
Встроенная сортировка — это ещё удобнее!
sort часто используется в пайпах для сортировки вывода — он фильтрует всё, что получает, и красиво показывает результат.
ls и так показывает файлы в “таблице”, а sort -k позволяет сортировать по любому столбцу.
Но зачем городить пайп, если ls уже умеет сортировать по размеру с помощью отдельной опции? Одна простая команда, и никакой путаницы с пайплайнами.
Флаг -r разворачивает сортировку — и самые большие файлы будут или вверху, или внизу, как удобно.
А ещё: если скармливать ls через sort, исчезают цвета терминала. Со встроенной сортировкой ls всё остаётся ярким и понятным!
head | tail
Как взять нужный диапазон строк одной командой
head и tail хороши, чтобы взять первые или последние n строк из файла или вывода другой команды. Объединяя их, можно добывать определённый диапазон строк.
Хитро, но есть проще: sed позволяет сразу получить нужные строки одной командой — никаких лишних пайпов и сложной математики.
Например, sed без труда выведет строки с 102-й по 105-ю. Всё решается одним выражением!
grep | head
Как сразу ограничить вывод — grep это умеет сам!
Бывает, запускаешь grep, а он выдаёт сотни совпадений. Обычно хочется видеть только первые 10 или 20 строк, и для этого часто добавляют head.
Но есть специальная опция: у grep есть -m (--max-count), которая ограничивает поиск нужным числом совпадений. Всего одна команда — и результат готов!
sort | uniq
Дедупликация ещё проще: sort и сам умеет выводить уникальные строки
Все знают эту цепочку: отсортировать, а потом убрать повторы с помощью sort | uniq. Кажется, так и должно быть.
На самом деле одной команды вполне достаточно: sort умеет отсортировать и сразу оставить только уникальные строки (-u или --unique). Никаких лишних утилит!
Всегда ищи более быстрый и удобный способ!
Linux — это неисчерпаемая “песочница” с сотнями инструментов. Чем лучше ты разбираешься в командах и их возможностях, тем быстрее и эффективнее у тебя получается работать. Не бойся изучать новые опции, экспериментировать и находить более короткие пути — твой арсенал станет только мощнее!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!
Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru






