Entonces, me dijeron que hiciera lo 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 me piden que escriba un script Awk que se llama myawk
que cuenta / determina cuántas líneas lastloggedin
contienen la cadena CFS264
.
hice grep -c CFS264 lastloggedin
text-processing
awk
scripting
TayshaunS
fuente
fuente
awk
? Si no, simplemente podrías usarlogrep -c CFS264 lastloggedin | wc -l
.grep -c (something) (something) | wc -l
será siempre la producción de "1".Respuestas:
Para comenzar, puede usar
awk
para buscar líneas en un archivo que contenga una cadena como esta: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 está funcionando, puede usar unprint $0
allí para simplemente imprimir las líneas que contienen la cadena de búsqueda.En cuanto al conteo, si busca "contador awk", se encontrará con este SO Q&A titulado: usar awk para contar el número de registros . El método que se muestra allí sería suficiente para lo que describe:
Ejemplo
NOTA: No dice a qué campo pertenece CFS264 en la
last
salida. Suponiendo que es un nombre de usuario, puede restringir aún más elawk
comando para buscar solo ese campo de la siguiente manera:fuente
awk
.El siguiente ejemplo cuenta las veces que se me menciona sin necesidad del
lastloggedin
archivo:Si insiste en usar o se ve obligado a usar el
lastloggedin
archivo, puede hacerlo de esta manera:Se usa
$1~/some_chars/
para obtener todos los nombres de usuario que contienen los caracteres dados o$1~/^prefix/
para hacer coincidir solo los nombres que comienzan conprefix
:PD:
Escanee
man awk
para obtener más pistas ... ;-)awk
es muy gratificante: puedes hacer muchas cosas después de muy poco tiempo de aprendizaje ...fuente
La última lata incluye los inicios de sesión de los usuarios de reinicios anteriores. Como tal, lo siguiente solo imprimirá a los usuarios desde el último reinicio:
La primera parte del comando awk especifica un rango: comience desde la primera fila hasta que la primera columna se 'reinicie'.
fuente