L'utilisation de nawk dans solaris

Seifou43 -  
zipe31 Messages postés 36402 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

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
cherchons des car. spéciaux
cat -vet fichier

essayer
nawk -F '\[|\]' '/^IPDATA.*IPREF.*[[0-9]]/{print "Ref sum of IPREF" " "  $2 }' fichier
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 432
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637 > zipe31 Messages postés 36402 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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 432 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
;-))

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