В контексте командной строки Linux «пайплайн» (pipeline) — это цепочка команд, где вывод одной команды передаётся на вход следующей через символ |

Общая схема построения pipeline : команда1 | команда2 | команда3

Логига построения:

  1. Источник данных — команда, которая выдает поток текста (файл, лог, список процессов и т.п)
  2. Фильтрация/преобразование — команды типа grep, sed, awk, cut, sort
  3. Агрегация/форматированиеwc, uniq, head/tail, column, jq(для json) и другие
  4. Вывод/сохранениеless, tee, перенаправление в файл (> file.txt)

Построение конвейеров (pipеline) рассмотрим на примере двух утилит для работы с тектом grep и tail.

  • grep — ищет строки по шаблону (регулярному выражению)
  • tail — показывает последние строки файла (по умолчанию 10)

Примеры использования

Найти строки со словом «ERROR» в файле:

Copy to Clipboard

 

Показать последние 50 строк и отфильтровать среди них строки с «warning»:

Copy to Clipboard

 

Найти все строки с IP‑адресом в логе:

Copy to Clipboard

 

Взять последние 100 строк лога и найти среди них успешные ответы (код 200) :

Copy to Clipboard

 

Посчитать, сколько раз встречается «timeout» в последних 500 строках

Copy to Clipboard

Мониторинг ошибок в реальном времени:

Copy to Clipboard

где tail -f следит за файлом и отдаёт новые строки по мере появления.
—line-buffered у grep нужен, чтобы он сразу выводил строки, а не копил их в буфере.

Взять последние N строк и найти в них что-то:

Copy to Clipboard
  • Сначала «обрезаем» лог до последних 500 строк
  • Потом ищем HTTP‑коды 500.
  • В конце считаем количество таких строк.

Получить уникальные IP‑адреса из последних строк лога:

Copy to Clipboard

где tail -n 1000 — берём последние 1000 строк.
awk '' — вытаскиваем первое поле (обычно это IP).
sort | uniq -c — считаем, сколько раз встречается каждый IP.
sort -nr — сортируем по количеству (числовой, в порядке убывания).
head -n 10 — оставляем топ‑10.