Menu
Coddy logo textTech

Цепочка нескольких команд

Часть раздела Основы путешествия по Terminal на Coddy — урок 45 из 82.

Вы не ограничены соединением только двух команд. Конвейеры (pipes) могут объединять в цепочку столько команд, сколько вам нужно, при этом каждая из них обрабатывает вывод предыдущей команды.

Просто добавьте больше символов |, чтобы расширить конвейер:

cat data.txt | sort | head -5

Это считывает файл, сортирует все строки по алфавиту, а затем показывает только первые 5 результатов. Данные передаются слева направо через каждую команду последовательно.

Вот практический пример, который находит уникальные отсортированные записи:

cat names.txt | sort | uniq

Содержимое файла сначала сортируется (что группирует дубликаты вместе), затем uniq удаляет идущие подряд повторяющиеся строки. Порядок здесь имеет значение — uniq удаляет только соседние дубликаты, поэтому сортировка должна идти первой.

Вы можете добавить еще больше этапов. Чтобы подсчитать количество уникальных имен:

cat names.txt | sort | uniq | wc -l

Каждый конвейер добавляет еще один шаг преобразования. При создании длинных конвейеров думайте о том, что каждой команде требуется на вход и что она выдает на выход. Формат вывода одной команды должен подходить в качестве входных данных для следующей.

challenge icon

Задание

Легко

Файл visitors.txt содержит список имен посетителей с дубликатами. Используйте конвейер из четырех команд, чтобы подсчитать количество уникальных посетителей.

Запустите одну команду, которая:

  • Использует cat для чтения visitors.txt
  • Передает данные по конвейеру в sort для сортировки имен по алфавиту
  • Передает данные по конвейеру в uniq для удаления дубликатов
  • Передает данные по конвейеру в wc -l для подсчета количества уникальных имен

Подсказка: Соедините все четыре команды вместе, используя несколько символов |. Помните, что uniq удаляет только соседние дубликаты, поэтому сортировка должна предшествовать этой команде.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы