Щоб розпочати роботу, ви можете скористатися awk
пошуком рядків у файлі, що містять такий рядок:
$ awk '/CFS264/ { .... }' lastloggedin
Біти у { .... }
заповіті будуть командами, необхідними для підрахунку кількості рядків у цьому рядку. Щоб підтвердити, що вищезазначене працює, ви можете використовувати print $0
там, щоб просто надрукувати ті рядки, які містять рядок пошуку.
$ awk '/CFS264/ { print $0 }' lastloggedin
Щодо підрахунку, якщо ви будете шукати "лічильник awk", ви натрапите на цей SO Q&A під назвою: використовуючи awk для підрахунку не записів . Показаний там метод буде достатнім для того, що ви описуєте:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Приклад
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
ПРИМІТКА. Ви не кажете, до якого поля CFS264 відноситься у last
висновку. Якщо припустити, що це ім’я користувача, то ви можете додатково обмежити awk
команду для пошуку лише в цьому полі так:
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awk
? Якщо ні, ви можете просто скористатисяgrep -c CFS264 lastloggedin | wc -l
.