Sommaire

Les arguments de la ligne de commande

awk fournit un mécanisme qui permet de passer des arguments à un script au moment de son appel. Les variables ARGC et ARGV sont initialisées par awk et permettent de traiter les valeurs passées sur la ligne de commande.

Exemple

Le script agenda.awk permet de rechercher des informations dans le fichier agenda.txt. L’utilisateur peut rechercher la ligne correspondant au nom d’une personne (nom=), à son e-mail (mail=) ou son code postal (cp=) :

$ cat agenda.txt 
Robert  75020   robert@monsite.com 
Natacha 75012   natacha@monsite.com 
Alex    75001   alex@monsite.com

Appels du script :

$ awk -f agenda.awk nom=Robert agenda.txt 
$ awk -f agenda.awk cp=75020 agenda.txt 
$ awk -f agenda.awk mail=’robert@monsite.com’ agenda.txt

Récupération des arguments :

$ nl agenda1.awk 
     1  #! /bin/awk 
 
     2  BEGIN{ 
     3    print "ARGC = " , ARGC 
     4    for (i=0;i<ARGC;i++) { 
     5       printf("ARGV[%d] = %s\n",i, ARGV[i]) 
     6    } 
     7  } 
 
$ awk -f agenda1.awk nom=Robert agenda.txt 
ARGC =  3 
ARGV[0] = awk 
ARGV[1] = nom=Robert 
ARGV[2] = agenda.txt

awk initialise le tableau ARGV avec le nom de la commande (ARGV[0]), et les valeurs passées sur la ligne de commande. Les options de awk ne se retrouvent pas dans le tableau des arguments, afin de ne pas gêner le traitement. 

Dans le script ci-dessus, il n’y a pas encore de section intermédiaire. Si celle-ci est ajoutée, ...