Para começar, você pode awk
procurar linhas em um arquivo que contenha uma string como esta:
$ awk '/CFS264/ { .... }' lastloggedin
Os bits no { .... }
serão os comandos necessários para contabilizar o número de linhas com essa sequência. Para confirmar que o procedimento acima está funcionando, você pode usar um print $0
para simplesmente imprimir as linhas que contêm a string de pesquisa.
$ awk '/CFS264/ { print $0 }' lastloggedin
Quanto à contagem, se você procurar "contador do awk", encontrará as perguntas e respostas sobre o SO: intitulado: usando o awk para contar nenhum registro . O método mostrado lá seria suficiente para o que você descreve:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Exemplo
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
NOTA: Você não diz a qual campo o CFS264 se refere à last
saída. Supondo que seja um nome de usuário, você pode restringir ainda mais o awk
comando para pesquisar apenas esse campo da seguinte forma:
$ awk '$1=="CFS264" { print $0 }' lastloggedin
awk
? Caso contrário, você poderia apenas usargrep -c CFS264 lastloggedin | wc -l
.