[RESOLU]Problème affichage colonne avec awk

Problème affichage colonne avec awk [RESOLU] - Shell/Batch - Programmation

Marsh Posté le 19-09-2012 à 08:43:48    

Bonjour,
 
 
Je souhaite récupérer le 3eme colonne de se fichier avec awk (sur AIX) :

Citation :

a|||b|||c|||d
e|||f||||||g


 
je devrais avoir seulement la valeur c , car la 3ème colonne de la ligne 2 est vide.
Le soucis est que je n'ai rien,mon code :

Code :
  1. awk -F\|\|\| '{print $3}' monfichier


 
et si je fais ceci

Code :
  1. awk -F\|\|\| '{print $1}' monfichier


il m'afficher tout :

Citation :

a|||b|||c|||d
e|||f||||||g


 
on dirai qu'il ne comprends pas le séparateur,
pourtant j'ai bien mis des caractère de protection.
 
Merci.


Message édité par donny3 le 24-09-2012 à 09:10:04
Reply

Marsh Posté le 19-09-2012 à 08:43:48   

Reply

Marsh Posté le 19-09-2012 à 14:03:51    

Manifestement, le paramètre -F ne permet de définir qu'un caractère [:figti]  
 
Mais tu peux positionner la variable "FS" au début de l'exécution du awk :

Code :
  1. awk '
  2. BEGIN { FS="[|]{3}"; }
  3. { print $3; }
  4. ' monfichier


Message édité par mrbebert le 19-09-2012 à 14:08:12

---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 19-09-2012 à 14:15:44    

Finalement, ça marche pareil avec le paramètre -F :

Code :
  1. awk -F"[|]{3}" '
  2. { print $3; }
  3. ' monfichier


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 23-09-2012 à 16:15:52    

Merci je testerai demain  
Supposons qu'on est des caractères mais différents comme séparateur
comme dans certains fichiers
j'ai comme séparateur

Citation :

%|%


donc je devrais faire quelquechose de ce genre
 

Code :
  1. awk -F"[%]{1}[|]{1}[%]{1}" '
  2. { print $3; }
  3. ' monfichier

Reply

Marsh Posté le 23-09-2012 à 16:44:43    

Oui, ça devrait être ça :)


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 24-09-2012 à 09:09:27    

je viens de tester ,ça marche nickel
je te remercie,
c'était  pas évident à trouver,j'ai regardé dans un bouquin linux,
sur le net et on trouve à chaque fois un séparateur simple.
 
Par contre,j'ai enlevé les {1},vu que dans tous les cas,
je n'ai qu'une seule fois le caractère.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed