Поиск по сайту:

Команда Linux Pipe с примерами


Команда «pipe» используется как в операционных системах UNIX, так и в Linux. Конвейеры помогают объединить две или более команд и используются в качестве концепций ввода/вывода в команде. В операционной системе Linux мы используем более одного канала в команде, поэтому вывод одной команды перед каналом действует как ввод для другой команды после канала. В этой статье мы обсудили множество примеров, чтобы понять основные функции каналов.

Предпосылки

Чтобы применять команды каналов в Linux, в вашей системе должна быть среда Linux. Это можно сделать, загрузив виртуальный ящик и настроив на нем файл Ubuntu. Пользователи должны иметь права доступа к необходимым приложениям.

Синтаксис

Команда 1 | команда 2 | команда 3 | ……

Сортировка списка с помощью каналов

Канал имеет множество функций, используемых для фильтрации, сортировки и отображения текста в списке. Один из распространенных примеров описан здесь. Предположим, у нас есть файл с именем file1.txt, содержащий имена студентов. Мы использовали команду cat для получения записи этого файла.

$ Cat file1.txt

Данные, присутствующие в этом файле, неупорядочены. Итак, чтобы отсортировать данные, нам нужно следовать фрагменту кода здесь.

$ Cat file1.txt | sort

В соответствующем выводе вы можете видеть, что имена учащихся расположены в алфавитном порядке в порядке от a до z.

Кроме того. Предположим, мы хотим получить результат в отсортированном виде, убрав избыточность. Мы будем использовать ту же команду и ключевое слово «uniq» в дополнение к команде по умолчанию. Давайте рассмотрим файл с именем file2.txt, содержащий имена субъектов. Эта же команда используется для получения данных.

$ Cat file2.txt

Теперь мы будем использовать команду для удаления всех слов, которые дублируются в файле.

$ Cat file2.txt | sort | uniq

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

$ cat file2.txt | sort  | uniq > list4.txt

Результат будет сохранен в другом файле с тем же расширением.

Отображение файловых данных соответствующего диапазона

Очень раздражает, когда вы хотите получить какие-то данные только с самого начала, но команда выдает вам все совпадающие элементы в вашей системе. Вы можете использовать ключевое слово «голова». Это помогает ограничить ваш вывод относительно некоторого диапазона. т. е. в этом примере мы объявили диапазон до 4. Значит данные будут из первых 4-х строк файла. Рассмотрим тот же файл file2.txt, который мы взяли в примере выше.

$ Cat file2.txt | head -4

Подобно голове, мы также можем использовать опцию хвоста. Это ограничит вывод последними строками в соответствии с заданным диапазоном.

Труба и многое другое

При использовании команды more все выходные данные одновременно отображаются на экране. Канал действует как контейнер и отображает все выходные данные как ввод ls-l. Потому что на выходе получается длинный список файлов.

$ ls –al | more

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

Подсчитайте количество файлов

Обычно необходимо знать количество файлов, присутствующих в данный момент. И нет необходимости использовать команду grep или cat для получения данных всех типов. Мы можем использовать pipe и в этом случае. Используемая команда записывается как:

$ ls | wc -l

Принимая во внимание, что wc — это «счетчик слов», используемый для подсчета присутствующих файлов.

Идентификация процесса

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

$ ps –ef | grep systemd | awk{print $2}

Команда awk $2 отображает данные $2, которые являются вторым столбцом.

Получить подкаталоги с помощью канала

Одна из команд конвейера, которую мы использовали для получения всех существующих подкаталогов в текущем каталоге, является одним из запросов канала в используемых нами командах конвейера. Здесь мы использовали команду grep. Grep работает только для отображения данных, начинающихся с «d». Канал поможет получить соответствующие данные всех каталогов. Здесь используется «^d».

$ ls –al | grep ‘^d’

Получить файлы с помощью канала

Чтобы получить файлы из системы соответствующих расширений, мы можем получить это, используя канал в наших командах. Первый пример — поиск java-файлов в системе. «locate» и «grep» помогают получить файлы соответствующих расширений.

$ locate*.java” | grep java

«*» используется для получения всех файлов в системе. В настоящее время в нашей системе присутствует один файл. Второй пример — получить файлы с расширением text. Вся команда такая же, только расширение файла изменено.

Используйте несколько каналов в одной команде

В этом примере, в отличие от предыдущих, мы использовали более одного канала в одной команде для уточнения ее функциональности. Рассмотрим файл с именем file3.txt.

Теперь мы хотим получить запись слова, совпадающего с именем, которое мы указали в команде. Здесь команда cat используется для извлечения данных из определенного файла. Grep используется для выбора этого конкретного слова из файла. «tee» используется для сохранения результата в другом файле. И wc для подсчета результирующих данных. Итак, результат показан ниже.

$ Cat file3.txt | grep “yasin” | tee file4.txt | wc –l

Слово соответствует содержанию 2. Мы можем отобразить данные из нового файла образца, чтобы отобразить весь результат, где результат хранится.

Получить определенные данные с помощью каналов

В этом примере мы хотим получить данные из файла, имеющего в своем содержимом «h».

$ Cat file3.txt | grep h

Результат показывает, что полученные данные соответствуют поиску по команде «h». Переходим к следующему примеру. Здесь мы хотим получить элементы файла, содержащие «s», но мы применили условие чувствительности к регистру. Будут выбраны как прописные, так и строчные буквы алфавита.

$ Cat file2.txt | grep –i s

Результат показан на изображении. Затем мы отобразим имена студентов, в которых в слове объединены буквы «а» и «т». Результат показан на приведенном ниже изображении.

$ cat file1.txt | grep “a\+t”

Заключение

В статье рассказывается об универсальности конвейера в командах Linux. Тем не менее, это довольно просто, но работает таким образом, чтобы разрешать многие сложные запросы. Эта утилита командной строки легко реализуема и совместима с операционными системами UNIX и Linux.

Статьи по данной тематике: