next up previous contents index
suivant: Les règles de sélection monter: Les sélecteurs précédent: Introduction, Définition   Table des matières   Index

Les sélecteurs prédéfini

Les deux seuls sélecteurs prédéfinis dans "awk" sont :

Le sélecteur "BEGIN" est vrai avant le traitement du premier enregistrement. Ce sélecteur est généralement utilisé pour initialiser des variables, définir des champs de saisie, etc.

Le sélecteur "END" est vrai après le traitement du dernier enregistrement. Ce sélecteur est généralement utilisé pour afficher les résultats finaux.

Exemple 15..1 :


L'exemple suivant permet d'afficher les noms de tous les fichiers du répertoire et leurs tailles.
ls -al | awk '
    BEGIN {
        totalsize = 0
        print "Fichier(Taille) du r{\'e}pertoire courant."
    }
    {
        totalsize += $5
        printf ("%s (%d)\n", $9, $5)
    }
    END {
        printf (Taille totale = %d octet(s).\n", totalsize)
        print "Fin de la liste."
    }
'

Pour rappel, la commande "ls -al" permet d'obtenir la liste de tous les fichiers dans le répertoire courant, y compris les fichiers cachés. Le cinquième champ correspond à la taille du fichier, le neuvième à son nom (cf. section [*]).

Lors de l'exécution du sélecteur "BEGIN", le programme "awk" initialise la variable "totalsize" à $0$, afin de pouvoir effectuer un cumul sur le cinquième champ, c'est-à-dire la taille des fichiers. Il affiche aussi un message avant exécution.

Pour chaque enregistrement, c'est-à-dire pour chaque fichier, on cumule sur le cinquième champ ("totalsize += $5") et on affiche les informations désirées.

Enfin, lors de l'exécution du sélecteur "END", le programme "awk" affiche la valeur du cumul (variable "totalsize") et un message de fin.

Par exemple, si la commande "ls -al" produit le résultat suivant :
-rw-r----- 1 schmoll esme     102 Jul 12 10:00 .cshrc
-rw-r----- 1 schmoll esme     123 Jul 12 10:00 .login
-rw-r----- 1 schmoll esme     124 Jul 12 10:00 .logout
-rw-r----- 1 schmoll esme      24 Jul 25 10:00 mes
-rw-r--r-- 1 schmoll esme      12 Jul 25 12:00 fichiers
-rwxr-xr-x 1 schmoll esme    1337 Jul 25 12:00 a
-rw-r--r-- 1 schmoll esme 1221337 Jul 25 12:00 moi
le programme "awk" produira la sortie suivante :
Fichier(Taille) du r{\'e}pertoire courant.
.cshrc (102)
.login (123)
.logout (124)
mes (24)
fichiers (12)
a (1337)
moi (1221337)
Taille totale = 1223058 octet(s).


next up previous contents index
suivant: Les règles de sélection monter: Les sélecteurs précédent: Introduction, Définition   Table des matières   Index
baudry@esme.fr