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

Ланцюжок grep, sort і wc в одній команді

Порахуйте рядки зі збігом і відфільтруйте відсортований список, поєднавши cat, grep, sort і wc.

Почати інтерактивний урок
Ланцюжок grep, sort і wc в одній команді

Коли grep, sort і wc вже зрозумілі окремо, справжня робота — складати їх докупи. Один рядок може витягти помилки з журналу й порахувати їх або відсортувати список користувачів і залишити лише потрібні імена. Окремої «ніндзя»-команди немає — лише конвеєри.

Порахувати рядки зі збігом

Прочитайте файл, залиште шаблон, порахуйте те, що лишилось:

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

Відфільтруйте файл, потім порахуйте або відсортуйте!

Складіть команду
cat | grep
Виберіть команду
Термінал
C:\Users\User>cat data.log | grep 'ERROR' | wc -l

Скільки рядків ERROR?

Command Prompt
ERROR: login INFO: boot ERROR: crash
C:\Users\User>cat data.log

grep без wc усе одно друкує рядки зі збігом. Додавайте wc -l, коли потрібне лише число.

Спочатку сортування, потім фільтр

Іноді порядок важливий ще до пошуку. Відсортуйте файл, потім залиште рядок, який вас цікавить:

printf '%s\n' 'user: guest' 'user: root' 'user: admin' > logs.txt
cat logs.txt | sort | grep 'root'
Command Prompt
user: admin user: root
C:\Users\User>cat logs.txt

Читайте зліва направо: отримайте рядки, перетворіть їх, потім залиште або порахуйте. Якщо конвеєр виглядає неправильно, запускайте кожну частину окремо, доки вивід не збігатиметься з тим, чого очікує наступна команда.


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

1 / 3

Що повертає cat data.log | grep 'ERROR' | wc -l?

Посилання

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