GNU/Linux >> Linux Esercitazione >  >> Linux

Conta i record che corrispondono al modello con Awk?

Quindi mi è stato detto di fare last > lastloggedin che crea un file che mostra l'ultimo accesso delle classi dall'ultimo riavvio del sistema, e ora mi viene chiesto di scrivere uno script Awk che si chiama myawk che conta/determina quante righe di lastloggedin contengono la stringa CFS264 .

Ho eseguito grep -c CFS264 lastloggedin

Risposta accettata:

Per iniziare puoi usare awk per cercare le righe in un file che contengono una stringa in questo modo:

$ awk '/CFS264/ { .... }' lastloggedin

I bit nel { .... } saranno i comandi richiesti per calcolare il numero di righe con quella stringa. Per confermare che quanto sopra funziona puoi usare un print $0 lì per stampare semplicemente quelle righe che contengono la stringa di ricerca.

$ awk '/CFS264/ { print $0 }' lastloggedin

Per quanto riguarda il conteggio, se cerchi "awk counter" ti imbatterai in questo SO Q&A intitolato:using awk per contare il numero di record. Il metodo mostrato lì sarebbe sufficiente per quello che descrivi:

$ awk '/CFS264/ {count++} END{print count}' lastloggedin

Esempio

$ last > lastloggedin

$ awk '/slm/ {count++} END {print count}' lastloggedin 
758

$ grep slm lastloggedin  | wc -l
758

$ grep -c slm lastloggedin
758

NOTA: Non dici a quale campo appartiene CFS264 in last produzione. Supponendo che sia un nome utente, puoi limitare ulteriormente il awk comando per cercare solo quel campo in questo modo:

$ awk '$1=="CFS264" { print $0 }' lastloggedin

Linux
  1. Conta il numero di pattern abbinati nell'editor vim

  2. Corrispondenza di pattern multilinea utilizzando Sed, Awk o Grep?

  3. Sostituire le righe che corrispondono a un motivo con le righe di un altro file in ordine?

  4. Cattura gruppi con Awk o Grep?

  5. Salva le modifiche sul posto con awk

Comando AWK in Linux con esempi

Esercitazione sui comandi Awk Linux/UNIX con esempi

Comando awk di Linux con 10 esempi

tar -C con un modello di file con caratteri jolly

AWK e nomi di file con spazio al suo interno.

Trova un file corrispondente a un determinato modello e assegna quel nome di file come valore a una variabile nello script di shell?