Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 23h42   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
Par défaut AWK - parser

Bonjour,

J'aimerai parser ce type de fichier 1 afin d'obtenir le résultat du type fichier 2.
J'aimerai le faire en awk, mais je coince sur un détail

fichier1
Code :
1
2
3
4
5
6
7
8
9
a toto 125
a titi 12
a tata 13
b baba 154
b bobo 13
b bubu 165
c coco 51
c cucu 23
c cici 49
fichier2
Code :
1
2
3
a toto 125 titi 12 tata 13
b baba 154 bobo 13 bubu 165
c coco 51 cucu 23 cici 49
Je sais qu'il faudrait le faire avec un tableau en utilisant a b et c comme clé , c'est à dire $1. Et concaténer le restant de la ligne mais je n'y arrive pas.


ça donnerait quelque chose comme ça:
Code :
awk -F" " '{array[$1]=concat($2,$3)} END {for(i in array) {print i" "array[i]}}' fichier1
merci d'avance de votre aide
clancy256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 01h03   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
bonjour,
Code :
awk '{tokeep=$2" "$3; if(! array[$1]){array[$1]=tokeep} else {array[$1]=array[$1]" "tokeep}}; END{for(i in array){print i,array[i]}}'
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/12/2010, 01h05   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 7
Points : 2
Points : 2
merci
clancy256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h19.


 
 
 
 
Partenaires

Hébergement Web