[GAWK] compter nombre de Field

SAW5 Messages postés 122 Statut Membre -  
SAW5 Messages postés 122 Statut Membre -
Bonjour tout le monde,

je veux compter le nombre de Field d'une chaîne de caractère saisie par l'utilisateur:
j'ai fais ceci mais ça ne fonctionne pas:

BEGIN {
        printf "votre chaine: "
        getline chaine <"-"
       FS="[=-+]"
}
{
print NF
}


merci beaucoup "j'utilise GAWK"

-

----Mon Nouveau Moi ---------------

5 réponses

lecube Messages postés 327 Statut Membre 54
 
Bonjour,

J'aurais plutot fait :" ' { print NF } '

Maintenant, si c'est sur plusieurs lignes :
'BEGIN { nbfield=0; }
{ nbfield=nbfield + NF; }
END { print "Le nombre de champ est :" nbfield }

Je maitrise pas bien le getline donc je ne sais pas ou t'aider sur ce point ...

0
SAW5 Messages postés 122 Statut Membre 7
 
merci de ta réponse, mais les champs doivent êtres séparer par les des caractères voir "FS" en plus c'est un script interractif

merci encore
0
lecube Messages postés 327 Statut Membre 54
 
Ah oui, tu modifes le FS ...Je prefere le passer en argument -F ... ;-P

Quel est l'erreur sorti par gawk ?

0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
$ gawk -f f1.awk
votre chaine:  a+b=c-d
4  a+b=c-d

$ type f1.awk
BEGIN { FS="[=+-]" ; printf "votre chaine: " ; getline ; chaine=$0 ; print NF,chaine }

getline lit par défaut le standard input, qui est aussi lu par gawk, il y a donc, me semble-t-il ambiguité pour faire de l'interactif, alors que gawk est fait pour traiter un flux
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAW5 Messages postés 122 Statut Membre 7
 
merci dubcek c'est exactement ce que je cherche 8)
0