On m'a donc dit de faire last > lastloggedin
ce 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 qui est nommé myawk
qui compte / détermine combien de lignes lastloggedin
contiennent la chaîne CFS264
.
J'ai fait grep -c CFS264 lastloggedin
text-processing
awk
scripting
TayshaunS
la source
la source
awk
? Sinon, vous pouvez simplement utilisergrep -c CFS264 lastloggedin | wc -l
.grep -c (something) (something) | wc -l
produira toujours "1".Réponses:
Pour commencer, vous pouvez utiliser
awk
pour rechercher des lignes dans un fichier contenant une chaîne comme ceci:Les bits de
{ .... }
seront les commandes nécessaires pour comptabiliser le nombre de lignes avec cette chaîne. Pour confirmer que ce qui précède fonctionne, vous pouvez utiliser unprint $0
dedans pour simplement imprimer les lignes qui contiennent la chaîne de recherche.En ce qui concerne le comptage, si vous recherchez "compteur awk", vous tomberez sur ce SO Q&A intitulé: en utilisant awk pour ne compter aucun enregistrement . La méthode présentée ici suffirait pour ce que vous décrivez:
Exemple
REMARQUE: vous ne dites pas à quel champ CFS264 se rapporte dans la
last
sortie. En supposant que c'est un nom d'utilisateur, vous pouvez restreindre davantage laawk
commande pour rechercher uniquement ce champ comme ceci:la source
awk
.L'exemple suivant compte les fois où je suis mentionné sans avoir besoin du
lastloggedin
fichier:Si vous insistez pour utiliser ou êtes obligé d'utiliser le
lastloggedin
fichier, vous pouvez le faire de cette façon:Utilisez
$1~/some_chars/
pour obtenir tous les noms d'utilisateurs contenant les caractères donnés ou$1~/^prefix/
pour faire correspondre uniquement les noms commençant parprefix
:PS:
Scannez
man awk
pour plus d'indices ... ;-)awk
est très enrichissant: vous pouvez faire beaucoup de choses après un très court apprentissage ...la source
Le dernier peut inclure les connexions des utilisateurs lors des redémarrages précédents. En tant que tel, les éléments suivants n'imprimeront que les utilisateurs depuis le dernier redémarrage:
La première partie de la commande awk spécifie une plage - commencez à partir de la première ligne jusqu'à ce que la première colonne soit 'reboot'.
la source