[GAWK] compter nombre de Field

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 ---------------
Configuration: un peu de tout quoi..du futur j'en est pris un IE 10..un Win 8 (c'est après le 7)..ah autre chose il n' y aura plus de clavier mais à la place une chose qui s'appelle la "trompe-de-saturne"

5 réponses

  1. 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 ...

    1. 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
      1. Ah oui, tu modifes le FS ...Je prefere le passer en argument -F ... ;-P

        Quel est l'erreur sorti par gawk ?

        1. Contributeur
          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