Команди Linux

Команда Linux pipe

Команда Linux pipe
Ця команда “pipe” легко доступна на платформах UNIX / Linux. Ця команда передає вихід попередньої команди до наступної команди. Буквально є ТОНИ ситуацій, коли цей метод пропонує серйозне значення.Перш ніж стрибати глибше, є про що знати. Кожна програма в системі UNIX / Linux має 3 вбудовані потоки даних.

Коли ми будемо працювати з трюками "pipe", "pipe" прийме STDOUT команди і передасть її STDIN наступної команди.

Давайте перевіримо деякі найпоширеніші способи включення команди “pipe” у своє щоденне використання.

Команда труби

Основне використання

Краще детально розглянути метод роботи “труби” на живому прикладі, вірно? Давайте розпочнемо. Наступна команда скаже “pacman”, менеджеру пакунків за замовчуванням для Arch та всіх дистрибутивів на основі Arch, роздрукувати всі встановлені пакети в системі.

pacman -Qqe

Це справді ДОВГИЙ список пакетів. Як щодо підбору лише декількох компонентів? Ми могли б використовувати “grep”. Але як? Одним із способів було б скинути вихідні дані до тимчасового файлу, "grep" бажаний результат і видалити файл. Ця серія завдань сама по собі може бути перетворена на сценарій. Але ми робимо сценарій лише для дуже великих речей. Для цього завдання, звернімось до сили “труби”!

pacman -Qqe | grep

Чудово, чи не так? "|" знак - це виклик команди “pipe”. Він захоплює STDOUT з лівої секції і подає його в STDIN правої секції.

У вищезазначеному прикладі команда “pipe” фактично передала вихідні дані в кінці частини “grep”. Ось як це відбувається.

pacman -Qqe> ~ / Робочий стіл / pacman_package.txt
grep python ~ / Робочий стіл / pacman_package.txt

Кілька трубопроводів

В основному, нічого особливого немає в розширеному використанні команди “pipe”. Від вас залежить, як ним користуватися.

Наприклад, почнемо з укладання кількох трубопроводів.

pacman -Qqe | grep p | grep t | grep py

Вихідні дані команди pacman фільтруються все далі і далі «grep» через серію трубопроводів.

Іноді, коли ми працюємо із вмістом файлу, він може бути дуже, дуже великим. Знайти правильне місце бажаного вступу може бути важко. Давайте шукатимемо всі записи, що містять цифри 1 і 2.

демонстрація котів.txt | grep -n 1 | grep -n 2

Маніпулювання списком файлів і каталогів

Що робити, коли ви маєте справу з каталогом, в якому є ТОНИ файлів? Прокрутити весь список досить прикро. Звичайно, чому б не зробити це більш терпимим за допомогою труби? У цьому прикладі давайте перевіримо список усіх файлів у папці “/ usr / bin”.

ls -l | більше

Тут “ls” друкує всі файли та їх інформацію. Потім “pipe” передає його “more” для роботи з цим. Якщо ви не знали, «більше» - це інструмент, який перетворює тексти в один екранний перегляд за раз. Однак це старий інструмент, і згідно з офіційною документацією, рекомендується більше "менше".

ls -l / usr / bin | менше

Вихід сортування

Існує вбудований інструмент "сортування", який виконує введення тексту та сортує їх. Цей інструмент є справжньою перлиною, якщо ви працюєте з чимось справді безладним. Наприклад, я отримав цей файл, повний випадкових рядків.

демонстрація котів.txt

Просто перекладіть його, щоб "сортувати".

демонстрація котів.txt | сортувати

Так краще!

Друк сірників певного зразка

ls -l | знайти ./ -тип f -name "*.txt "-exec grep 00110011 \;

Це досить покручена команда, правильно? Спочатку “ls” видає список усіх файлів у каталозі. Інструмент "знайти" бере результат, шукає ".txt ”та викликає“ grep ”для пошуку“ 00110011 ”. Ця команда перевірить кожен окремий текстовий файл у каталозі з розширенням TXT та шукає збіги.

Друк вмісту файлу певного діапазону

Коли ви працюєте з великим файлом, зазвичай потрібно перевірити вміст певного діапазону. Ми можемо зробити це лише за допомогою розумного комбінування "кішка", "голова", "хвіст" і, звичайно, "труба". Інструмент “head” видає першу частину вмісту, а “tail” - останню частину.

кішка | голова -6

кішка | хвіст -6

Унікальні цінності

При роботі з дублюючими виходами це може бути досить неприємно. Іноді повторне введення може спричинити серйозні проблеми. У цьому прикладі давайте додамо “uniq” на потік тексту та збережемо його в окремий файл.

Наприклад, ось текстовий файл, що містить великий список чисел, що складаються з 2 цифр. Тут точно є дубльований вміст, вірно?

кішка дублікат.txt | сортувати

Тепер давайте виконаємо процес фільтрації.

кішка дублікат.txt | сортувати | uniq> унікальний.txt

Перевірте результати.

кажан унікальний.txt

Виглядає краще!

Труби помилок

Це цікавий метод трубопроводів. Цей метод використовується для перенаправлення STDERR на STDOUT і продовження роботи з трубопроводами. Це позначається символом "| &" (без лапок). Наприклад, давайте створимо помилку і надішлемо результат на інший інструмент. У цьому прикладі я просто набрав якусь випадкову команду і передав помилку “grep”.

adsfds | & grep n

Заключні думки

Хоча сама «труба» досить спрощена за своєю суттю, спосіб її роботи пропонує дуже універсальний спосіб використання методу нескінченно. Якщо ви любите сценарії Bash, то це набагато корисніше. Іноді ти можеш просто відверто робити божевільні речі! Дізнайтеся більше про сценарії Bash.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...