L'utilisation de nawk dans solaris

Bonjour,

j'ai un petit problème pour l'extraction d'une valeur numérique depuis un fichier text :

le lien du fichier est : https://www.cjoint.com/c/JHzlT7jSGdb

j'ai commencer par le code ci-dessous , il marche bien mais il affichent toutes les lignes mais je cherche seulement les valeurs qui sont entre crochets.


 nawk '/^IPDATA.*IPREF.*[[0-9]/match ( $0,/\[[^]]*/ ) {print "Ref sum of IPREF"   substr ( $0,RSTART+1,RLENGTH-2 ) }' file
                                                                      


il m'affichent toutes les lignes :

Ref sum of IPREF 
Ref sum of IPREF 2
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 2
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 
Ref sum of IPREF 1
Ref sum of IPREF



je cherche a voir seulement 3 :

Ref sum of IPREF 2
Ref sum of IPREF 2
Ref sum of IPREF 1

comment faire une correction sur le code ?

merci

3 réponses

  1. Contributeur
    hello
    en utilisant le séparateur de champ plutot que substr
    $  nawk -F  '[][]' '/^IPDATA.*IPREF.*[[0-9]]/ {print "Ref sum of IPREF", $2}' file
    Ref sum of IPREF 2
    Ref sum of IPREF 2
    Ref sum of IPREF 1
    1. merci beaucoup pour votre réponse :

      le prblème persiste : la valeur recherché ne s'affiche plus

      
      >  nawk -F '[][]' '/^IPDATA.*IPREF.*[[0-9]]/{print "Ref sum of IPREF" " "  $2 }' fichier
      
      


      Ref sum of IPREF
      Ref sum of IPREF
      Ref sum of IPREF

      merci
      1. Contributeur
        cherchons des car. spéciaux
        cat -vet fichier

        essayer
        nawk -F '\[|\]' '/^IPDATA.*IPREF.*[[0-9]]/{print "Ref sum of IPREF" " "  $2 }' fichier
        1. Contributeur
          Salut dubcek,

          Bingo ;-\

          $ cat -vet JHzlT7jSGdb_test.txt
          IPDATA=A IPID A ^M$
          IPDATA=A IPREF [2] = ^M$
          --- IPREF = VRID=A_1 ^M$
          --- IPREF = VRID=A_2 ^M$
          ^M$
          IPDATA=B IPID B ^M$
          IPDATA=B IPREF [2] = ^M$
          --- IPREF = VRID=B_1 ^M$
          --- IPREF = VRID=B_2 ^M$
          ^M$
          IPDATA=C IPID C ^M$
          IPDATA=C IPREF [1] = ^M$
          --- IPREF = VRID=C_1
        2. Contributeur
          @zipe31damned
          copier coller ce qu'affiche 6joint ou télécharger le fichier, ce n'est pas identique
          on est peu de chose ...
        3. Contributeur
          @dubcek;-))

          Les copier/coller s'adaptent à ton système ;-)