L'utilisation de nawk dans solaris

Seifou43 -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    0
  2. Seifou43
     
    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
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    cherchons des car. spéciaux
    cat -vet fichier

    essayer
    nawk -F '\[|\]' '/^IPDATA.*IPREF.*[[0-9]]/{print "Ref sum of IPREF" " "  $2 }' fichier
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
      0
      1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention  
         
        damned
        copier coller ce qu'affiche 6joint ou télécharger le fichier, ce n'est pas identique
        on est peu de chose ...
        0
      2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ;-))

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