Учебное пособие по Bash Pipe
Обычно мы получаем вывод любой команды в терминал. Иногда нам нужно отправить вывод команды как ввод другой команды. Эту задачу можно выполнить, выполнив команды несколько раз. Но эту задачу можно легко выполнить с помощью команды канала, которая выполняет две или более команд одновременно в Linux, где вывод одной команды является вводом следующей команды. Оператор «|» используется для конвейера. Использование команды pipe описано в этом руководстве.
Примеры команд канала
Различные варианты использования команды pipe(|) показаны в этой части руководства.
Пример 1. Запись в файл
Конкретное строковое значение может быть записано в новый файл с помощью команд «echo» и «cat».
Выполните следующую команду, чтобы записать строковое значение в файл test.txt. Здесь вывод команды «echo» передается как ввод команды «cat»:
Выполните следующую команду, чтобы проверить содержимое файла test.txt:
Следующий вывод показывает, что файл успешно создан с выводом команды «echo»:
Пример 2. Подсчитайте общее количество отдельных файлов
В этом примере показан метод подсчета общего количества текстовых файлов, начинающихся со слова «тест». Эту задачу можно выполнить с помощью нескольких команд или одной команды с вертикальной чертой (|).
Выполните следующую команду, чтобы распечатать список текстовых файлов текущего местоположения:
Следующий вывод показывает, что есть два текстовых файла, которые начинаются со слова «test». Это test.txt и testfile.txt:
Выполните следующую команду, чтобы сохранить список текстовых файлов в переменной $list:
Выполните следующую команду, чтобы узнать список текстовых файлов, начинающихся со слова «тест», и сохраните их в файле filter.txt:
Выполните следующую команду, чтобы подсчитать общее количество строк в файле filter.txt:
После выполнения предыдущих команд появляется следующий вывод:
Задачу предыдущих команд можно легко выполнить с помощью следующей одиночной команды, в которой вывод команды «ls» отправляется в качестве ввода команды «grep». Вывод команды «grep» аналогичен вводу команды «wc» с использованием вертикальной черты (|).
После выполнения предыдущей команды появляется следующий вывод:
Пример 3. Сортировка содержимого файла
Команду sort можно использовать для сортировки содержимого файла различными способами. В этой части туториала показан метод сортировки содержимого текстового файла с помощью команд «cat» и «sort».
Создайте текстовый файл с именем products.txt со следующим содержимым:
Выполните следующую команду, чтобы проверить содержимое файла products.txt:
После выполнения предыдущей команды появляется следующий вывод:
Выполните следующую команду, чтобы отсортировать содержимое файла в порядке возрастания на основе первого столбца файла:
После выполнения предыдущей команды появляется следующий вывод:
Выполните следующую команду, чтобы отсортировать содержимое файла в порядке убывания на основе первого столбца файла:
После выполнения предыдущей команды появляется следующий вывод:
Выполните следующую команду, чтобы отсортировать содержимое файла в порядке возрастания на основе третьего столбца файла:
После выполнения предыдущей команды появляется следующий вывод:
Выполните следующую команду, чтобы отсортировать содержимое файла в порядке возрастания на основе первого столбца файла и сохранить отсортированные выходные данные в файле sortedProduct.txt:
Выполните следующую команду, чтобы проверить содержимое файла sortedProduct.txt:
После выполнения предыдущих команд появляется следующий вывод:
Пример 4. Чтение определенного содержимого файла
Команда «head» используется для чтения определенного количества строк с начала файла. Команда «tail» используется для чтения определенного количества строк с конца файла. В этом примере показаны методы использования команд «cat» и «head», «cat» и «tail», а также команд «cat», «head» и «tail» с оператором вертикальной черты (|).
Выполните следующие команды, чтобы проверить содержимое файла products.txt и распечатать первые две строки файла products.txt:
$ cat products.txt | head -2
После выполнения предыдущих команд появляется следующий вывод:
Выполните следующие команды, чтобы проверить содержимое файла products.txt и распечатать последние три строки файла products.txt:
$ cat products.txt | tail -3
После выполнения предыдущих команд появляется следующий вывод:
Выполните следующие команды, чтобы проверить содержимое файла products.txt и распечатать последнюю строку из первых трех строк файла products.txt:
$ cat products.txt | head -3 | tail -1
После выполнения предыдущих команд появляется следующий вывод:
Заключение
Оператор канала (|) — очень полезный оператор Bash, который используется для разных целей. Некоторые распространенные варианты использования этого оператора показаны в этом руководстве на различных примерах. Мы надеемся, что после прочтения этого руководства пользователям Bash станет понятно использование оператора канала (|).