Así que me dijeron que hiciera last > lastloggedin
que crea un archivo que muestra el último inicio de sesión de las clases desde el último reinicio del sistema, y ahora se me pide que escriba un script Awk que se llama myawk
que cuenta/determina cuántas líneas de lastloggedin
contener la cadena CFS264
.
He hecho grep -c CFS264 lastloggedin
Respuesta aceptada:
Para comenzar, puede usar awk
para buscar líneas en un archivo que contenga una cadena como esta:
$ awk '/CFS264/ { .... }' lastloggedin
Los bits en el { .... }
serán los comandos necesarios para contar el número de líneas con esa cadena. Para confirmar que lo anterior funciona, puede usar print $0
allí para simplemente imprimir las líneas que contienen la cadena de búsqueda.
$ awk '/CFS264/ { print $0 }' lastloggedin
En cuanto al conteo, si busca "contador awk", encontrará esta pregunta y respuesta SO titulada:usar awk para contar el número de registros. El método que se muestra allí sería suficiente para lo que describe:
$ awk '/CFS264/ {count++} END{print count}' lastloggedin
Ejemplo
$ last > lastloggedin
$ awk '/slm/ {count++} END {print count}' lastloggedin
758
$ grep slm lastloggedin | wc -l
758
$ grep -c slm lastloggedin
758
last
producción. Suponiendo que es un nombre de usuario, entonces podría restringir aún más el awk
comando para buscar solo ese campo así:
$ awk '$1=="CFS264" { print $0 }' lastloggedin