Eu escrevi este programa awk simples:
last -n 10 | awk'{print "username: " $1}'
Fiquei surpreso quando obtive a seguinte saída:
> username: someUsername1
> username: someUsername2
> username: someUsername3
> ...
> username: someUsername10
> username:
> username: wtmp
usando last -n 10 | wc -l
eu aprendi que o last
comando retorna duas linhas a mais do que o número que eu dei (a saída foi 12
)
Fiz o check-in man last
e não encontrei nada sobre essas duas linhas extras ou como se livrar delas.
o que são essas linhas em branco e 'wtmp'? e como posso ignorá-los? (talvez no lado do awk?)
Obrigado!
Uma solução genérica que funcionará em qualquer lugar, e quando houver menos de dez entradas no banco de dados de login, é cortar as duas últimas linhas:
Versões recentes de
util-linux
(2.30.2 e posteriores) permitem que awtmp
linha seja descartada:Se eu executar por último sem nenhum argumento, recebo a seguinte saída:
E uma linha vazia antes dela. Esta é a data a partir da qual os logins são registrados.
Você pode se livrar disso usando head.