Table des matières
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