Les utilisateurs non système : awk contre perl

Un utilisateur voulait savoir quels utilisateurs étaient créés sur sa machine. Il faut regarder les utilisateurs ayant un id supérieur ou égal à 1000 dans le fichier /etc/passwd.

Viens alors le script en perl ... mais pourquoi sortir perl quand c'est plus simple de le faire avec awk ?

Voici la ligne perl donné par [ADN] :

# perl -laF: -ne 'print "$F[0]" if ($F[2]>=1000)' /etc/passwd

Avec les performances (donné par la commande time) :

real    0m0.031s
user    0m0.012s
sys     0m0.006s

Je propose ensuite la commande suivante :

# awk -F: '1000 <= $3 { print $1 }' /etc/passwd

Plus simple à écrire (tout du moins je trouve), elle est aussi bien plus performante :

real    0m0.005s
user    0m0.003s
sys     0m0.002s

Enfin, pour le fun, je me suis amusé à utiliser sed. Voilà ce que ca donne (il y a peu être plus simple) :

#  sed -n -e 's@\([^:]*\):\([^:]*\):\([[:digit:]]\{4\}\).*:\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\).*@\1@p' /etc/passwd

Par contre ... niveau performance ... :

real    0m0.039s
user    0m0.013s
sys     0m0.004s

Haut de page