====== awk, exemples commentés======= ===== Prochain UID disponible ===== Cette commande awk permet de connaître le prochain UID disponible : # getent passwd | awk -F':' ' BEGIN { nuid = 0 } { if (nuid < $3 && $3 != 65534) nuid = $3 } END { print nuid + 1 }' ==== Commentaires ==== * On initialise la variable nuid à 0 (bloc BEGIN) * Pour chaque ligne, on test si le troisième champ (qui correspond à l'uid) est différent de celui réservé à nobody (ici 65534), et s'il est supérieur à nuid * Si l'UID courant est effectivement supérieur à nuid, on réattribue cette variable * Finalement (bloc END) on affiche l'uid maximun + 1 ===== Afficher les lignes paires d'un fichier ===== awk '{ if (FNR % 2) print }' /etc/passwd **Note** la numérotation de ligne commencant à 0, cela affiche (concrètement) les lignes 1,3,5 .. ==== Commentaires ==== FNR est une variable spéciale décrit comme suit dans la page de manuel : w FNR The input record number in the current input file On utilise donc simplement l'opérateur modulo pour savoir si le numéro de ligne est paire ou pas. **Attention** la variable FNR est une variable apportée par la version GNU de awk ~~DISCUSSION~~