[awk] Appel de fonctions en cascade
Bonjour,
Je souhaite utiliser dans un programme awk deux fonctions : l'une pour me compter le nombre de champs de la première ligne de mon fichier de données. Si ce nombre correspond à ce que je veux, je fais appel à ce moment-là à une autre fonction pour réaliser une autre tâche.
Exemple de fonction pour compter le nombre de champs de la première ligne
Code:
1 2 3 4
| function nbr_champ(nbr_champ_attendu)
{
if((NR==1) && (NF==nbr_champ_attendu)) {return 1}
} |
Exemple de fonction pour tester la longueur d'un champ de toute les lignes de mon jeu de données. Si ce champ est vide, alors le programme m'affichera la chaîne "OK".
Code:
1 2 3 4
| function affiche(champ)
{
if (length(champ) == 0) print "OK"
} |
Place au programme principale
Code:
1 2 3 4 5 6
| BEGIN {FS=";"}
{
nbr_champ(12)
si nbr_champ me renvoie 1 alors appeler la fonction "affiche" pour tester la longueur du dixième champ "$10"
sinon, je ne fais rien
} END |
En résumé, j'ai dû mal à gérer le return de ma première fonction.
Merci d'avance pour votre aide.