Fonctions utilisateur

Les fonctions personnelles peuvent être définies dans le script awk, en dehors des blocs d'instructions, ou dans un autre script qui sera également appelé par l'option -f <script>.

Une fonction se définit par le mot clé function suivi du nom de la fonction et de ses paramètres. Une fonction peut recevoir de 0 à n arguments et retourner une valeur explicite.

Syntaxe

function nom_fonction (param1, param2, ..., paramn) {
     instructions
     return valeur
}

Tous les paramètres de la fonction sont des variables locales. Toute autre variable définie dans la fonction est globale.

Appel d'une fonction

valeur=nom_fonction(val1, val2, ..., valn)

Il ne doit pas y avoir d'espace entre le nom de la fonction et la parenthèse ouvrante.

Exemple

$ nl script14.awk
     1  function modulo(nb){
     2          mod=nb%2
     3          if(mod==0){
     4                  chaine=sprintf("%d est un nombre pair" , nb)
     5          }
     6          else{
     7                  chaine=sprintf("%d est un nombre impair" , nb)
     8          }
     9          return chaine
    10  }
    11  {
    12          for(i=1;i<=NF;i++){
    13                  print modulo($i)
    14          }
    15  }
$ echo "20 21 23 56 43 2.4 rr" | awk -f script14.awk
20 est un nombre pair
21 est un nombre impair
23 est un nombre impair
56 est un nombre pair
43 est un nombre impair
2 est un nombre impair
0 est un nombre pair
$

Etiquettes: