Foi-me dito para fazer o last > lastloggedin
que cria um arquivo que mostra o último logon das classes desde a última reinicialização do sistema, e agora me pedem para escrever um script do Awk chamado myawk
que conta / determina quantas linhas lastloggedin
contêm a string CFS264
.
eu fiz grep -c CFS264 lastloggedin
text-processing
awk
scripting
TayshaunS
fonte
fonte
awk
? Caso contrário, você poderia apenas usargrep -c CFS264 lastloggedin | wc -l
.grep -c (something) (something) | wc -l
vai sempre produzir "1".Respostas:
Para começar, você pode
awk
procurar linhas em um arquivo que contenha uma string como esta: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 umprint $0
para simplesmente imprimir as linhas que contêm a string de pesquisa.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:
Exemplo
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 oawk
comando para pesquisar apenas esse campo da seguinte forma:fonte
awk
.O exemplo a seguir conta os horários mencionados sem a necessidade do
lastloggedin
arquivo:Se você insistir em usar ou for forçado a usar o
lastloggedin
arquivo, poderá fazê-lo desta maneira:Use
$1~/some_chars/
para obter todos os nomes de usuário que contenham os caracteres fornecidos ou$1~/^prefix/
para corresponder apenas aos nomes que começam comprefix
:PS:
Procure
man awk
mais dicas ... ;-)awk
é muito gratificante: você pode fazer muitas coisas depois de um tempo muito curto de aprendizado ...fonte
Last can inclui logins de usuários de reinicializações anteriores. Como tal, o seguinte só imprime usuários desde a última reinicialização:
A primeira parte do comando awk especifica um intervalo - inicie da primeira linha até a primeira coluna ser 'reiniciar'.
fonte