GNU/Linux >> Tutoriels Linux >  >> Linux

Compter les enregistrements correspondant au modèle avec Awk ?

On m'a donc dit de faire last > lastloggedin qui crée un fichier qui montre la dernière connexion des classes depuis le dernier redémarrage du système, et maintenant on me demande d'écrire un script Awk nommé myawk qui compte/détermine le nombre de lignes de lastloggedin contenir la chaîne CFS264 .

J'ai fait grep -c CFS264 lastloggedin

Réponse acceptée :

Pour commencer, vous pouvez utiliser awk pour rechercher des lignes dans un fichier contenant une chaîne comme suit :

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

Les bits dans le { .... } seront les commandes nécessaires pour compter le nombre de lignes avec cette chaîne. Pour confirmer que ce qui précède fonctionne, vous pouvez utiliser un print $0 là pour imprimer simplement les lignes qui contiennent la chaîne de recherche.

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

En ce qui concerne le comptage, si vous recherchez "awk counter", vous tomberez sur cette SO Q&A intitulée :utiliser awk pour compter aucun enregistrement. La méthode montrée ici suffirait pour ce que vous décrivez :

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

Exemple

$ last > lastloggedin

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

$ grep slm lastloggedin  | wc -l
758

$ grep -c slm lastloggedin
758

REMARQUE : Vous ne dites pas à quel champ CFS264 se rapporte dans le last production. En supposant qu'il s'agisse d'un nom d'utilisateur, vous pouvez restreindre davantage le awk commande pour rechercher uniquement ce champ comme ceci :

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

Linux
  1. Compter le nombre de motifs correspondants dans l'éditeur vim

  2. Correspondance de modèle multiligne à l'aide de Sed, Awk ou Grep ?

  3. Remplacer les lignes correspondant à un motif par des lignes d'un autre fichier dans l'ordre ?

  4. Comment rechercher dans des fichiers spécifiques correspondant à un modèle ?

  5. Capturer des groupes avec Awk ou Grep ?

Premiers pas avec awk, un puissant outil d'analyse de texte

Extraire et afficher des données avec awk

Commande AWK sous Linux avec des exemples

Tutoriel de commande Linux/UNIX Awk avec exemples

Commande Linux awk avec 10 exemples

Comment soustraire des lignes (lignes) avec AWK