next up previous contents index
suivant: Programmation avancée de Shell monter: Utilisation de « awk » précédent: Exemple   Table des matières   Index


Remarque sur l'utilisation de l'option "-f"

À la règle 10 explicitée à la section [*], nous avions préciser que la première ligne d'un script devait spécifier le nom de l'exécutable associé au shell utiliser.

Nous avons vu de même, que la commande "awk" dispose de l'option "-f", permettant de préciser un fichier de requêtes "awk".

Si l'analogie est faite avec le shell, le processus chargé d'évaluer chaque ligne du fichier est l'exécutable spécifié au niveau de la première ligne du fichier contenant les instructions. Par conséquent si le fichier contenant les requêtes "awk" :

il peut être considéré comme un filtre exécutant les requêtes "awk" qu'il contient.

Par exemple, si cette notion est appliquée au fichier décrit dans l'exemple de la section [*], le contenu du fichier "cumul.awk" :

#!/usr/bin/awk
BEGIN {
    FS=":"
    print "Statistiques sur le nombre de sarrasins occis"
    nb=0
}

$1 ~ /[a-zA-Z]/ {
    cumul[$1] += $4
    for (i=1; (i <= nb) && (list[i] != $1; i++)
    if ( i > nb) {
        nb ++
        list[nb]=$1 $2
    }
}
END {
    printf ("%.20s\t%.20s \n","Zigoto", "Cumul")
    for (i=1; i <= nb; i++)
        printf ("%.20s\t%.20s \n",
             list[i], cumul[list[i]])
}

La commande qui sera saisie deviendra :

cumul.awk donjon

Si nous voulons utiliser le programme "cumul.awk" comme un filtre, il sera alors possible de saisir la commande suivante :

cat donjon | cumul.awk

Dans tous les cas, le résultat obtenu sur la sortie standard sera identique à celui montré à la section [*].


next up previous contents index
suivant: Programmation avancée de Shell monter: Utilisation de « awk » précédent: Exemple   Table des matières   Index
baudry@esme.fr