Comment faire une "jointure" entre deux fichiers ? awk ? [bash] - Linux et OS Alternatifs
Marsh Posté le 06-09-2004 à 11:51:52
une solution simple, si tu es sur de ne pas avoir de "trou" dans les deux fichiers, genre tu passes pas de n à n+3 sans les id intermédiaires. Il suffit de réordonner les deux fichiers, et tu as les coresspondances
EDIT : en fait, je manque de détail sur les specs de tes fichiers
Marsh Posté le 06-09-2004 à 12:01:49
en fait il risque d'y avoir des trous
les champs sont séparés par des tabulations ...
tu veut savoir autre chose ?
déjà merci !
Marsh Posté le 06-09-2004 à 12:24:06
ben est-ce que à chaque id dans personne.fic, il y a un id correspondant dans nom.fic (et vise-versa) ?
Marsh Posté le 06-09-2004 à 14:25:53
alors :
- chaque id de nom.fic est dans personne.fic
- l'inverse est FAUX
--> en fait c'est possible de connaitre le nom seul
Marsh Posté le 06-09-2004 à 15:53:33
Une solution avec awk :
awk '
BEGIN {
while (getline < "personne.fic" ) {
id[$1] = $2 " "
}
}
{ print $1 " " id[$1] $2 }
' nom.fic
Marsh Posté le 06-09-2004 à 17:32:11
finalement j'ai chargé les fichiers dans une table temporaire, fait une requête sql et déchargé dans un fichier ...
C'est bourin mais ca marche ...
Faudrai que je teste la solution d'ArSuniK mais la condition du while me parrait étrange non ?
En tout cas merci pour vos réponses !!!
Marsh Posté le 06-09-2004 à 11:35:23
Bonjour !
je voudrai faire une sorte de jointure entre deux fichier par rapport à un id de personne
exemple : fichier personne.fic
fichier nom.fic
j'ai commencé et ca donne ca mais bof bof :
Mais forcément ca marche pas
mais je suis pas top en shell
le but c'est d'avoir :
1 toto leNomDeToto
2 titi leNomDeTiti
3 tata leNomDeTata
:
:
:
Merci de votre aide !!!
Message édité par camarchepoa le 06-09-2004 à 11:37:12