Для начала вы можете использовать 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.