GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuenta los registros que coinciden con el patrón con Awk?

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

NOTA: No dice a qué campo pertenece CFS264 en el 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

Linux
  1. ¿Cómo buscar en archivos específicos que coincidan con un patrón?

  2. Arreglos AWK explicados con 5 ejemplos prácticos

  3. Función Bash para encontrar el patrón de coincidencia de archivos más nuevo

  4. usando awk con condiciones de valor de columna

  5. Coincidencia de patrón de secuencia de comandos Bash

Primeros pasos con awk, una poderosa herramienta de análisis de texto

Extraer y mostrar datos con awk

Comando AWK en Linux con ejemplos

Tutorial de comandos Linux/UNIX Awk con ejemplos

Comando awk de Linux con 10 ejemplos

Cómo restar filas (líneas) con AWK