CMD Master
Назад до блогу
•Arnošt Havelka

Передача виводу команди через конвеєр

Через | передайте вивід однієї команди в наступну, потім з’єднайте grep і wc.

Почати інтерактивний урок
Передача виводу команди через конвеєр

Конвеєр | бере вивід команди зліва і подає його як вхід команді справа. Вам більше не треба зберігати тимчасові файли лише для того, щоб їх відфільтрувати.

Відфільтрувати список: ls | grep

ls друкує імена. grep залишає рядки, які вам потрібні. Разом:

Спробуйте команду

Залиште з ls лише імена, що збігаються!

Складіть команду
ls[arguments]|grep[arguments]
ls
Термінал
~$ls | grep .txt
welcome.txt

Залиште текстові файли:

Термінал
~$ls | grep .txt

> пише у файл. | пише в іншу команду. Плутати їх — типова перша помилка.

Ланцюжок із трьох команд

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

printf '%s\n' 'info: started' 'warn: slow' 'warn: timeout' > log.txt
cat log.txt | grep warn | wc -l

cat друкує файл, grep залишає рядки з попередженнями, wc -l їх рахує.

Термінал
~$cat log.txt | grep warn | wc -l

Будуйте конвеєри зліва направо: отримайте дані, відфільтруйте їх, потім підсумуйте.


Перевірка знань

1 / 3

Що робить оператор |?

Посилання

Ці посилання на документацію надають авторитетну інформацію про команди, використані в цій статті.

Далі

Пошук тексту у файлах за допомогою grep

Знайдіть рядки, що збігаються, у файлі, а регістр літер ігноруйте через grep -i.