====== 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~~