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

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

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

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

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

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

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

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

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

Складіть команду
cat[file]|grep[pattern]|wc-l
cat
Термінал
~$cat data.log | grep 'ERROR' | wc -l
2

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

Термінал
~$cat data.log | grep 'ERROR' | wc -l

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

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

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

printf '%s\n' 'user: guest' 'user: root' 'user: admin' > logs.txt
cat logs.txt | sort | grep 'root'
Термінал
~$cat logs.txt | sort | grep 'root'

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


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

1 / 3

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

Посилання

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

Далі

Як змінити власника файла за допомогою chown у Bash

Змінюйте власника й групу файла або каталогу за допомогою chown, перевіряйте результат та уникайте небезпечних рекурсивних змін.