Croisement de deux fichiers
Fermé
Utilisateur anonyme
-
14 sept. 2009 à 15:49
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 15 sept. 2009 à 14:21
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 15 sept. 2009 à 14:21
A voir également:
- Croisement de deux fichiers
- Wetransfer gratuit fichiers lourd - Guide
- Deux comptes whatsapp - Guide
- Fusionner deux fichiers excel - Guide
- Explorateur de fichiers - Guide
- Renommer plusieurs fichiers - Guide
5 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
14 sept. 2009 à 16:06
14 sept. 2009 à 16:06
Salut,
Merci d'afficher quelques lignes des deux fichiers avec un exemple concret de ce que tu veux récupérer...
Merci d'afficher quelques lignes des deux fichiers avec un exemple concret de ce que tu veux récupérer...
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
14 sept. 2009 à 18:06
14 sept. 2009 à 18:06
Et tu veux récupérer tout le bloc (entre "<FICHE>" et "</FICHE>") ou seulement l'IDINFO et la DATE ?
rebonjour,
A la fin je veux récuperer que le idinfo et la date mais sa c'est tres simple à faire une fois j'ai mon fichier avec les avis d'attribution de <FICHE> à </FICHE>. donc je veux de <FICHE> à </FICHE>, si c'est possible (c'est ce que je n'ai pas réussi à faire ) , aprés je pense c'est facile pour extraire l'idinfo et les dates (avec un sed).
A la fin je veux récuperer que le idinfo et la date mais sa c'est tres simple à faire une fois j'ai mon fichier avec les avis d'attribution de <FICHE> à </FICHE>. donc je veux de <FICHE> à </FICHE>, si c'est possible (c'est ce que je n'ai pas réussi à faire ) , aprés je pense c'est facile pour extraire l'idinfo et les dates (avec un sed).
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
14 sept. 2009 à 19:04
14 sept. 2009 à 19:04
[rep]$ cat fichier_total <FICHE> <IDINFO>6372655</IDINFO> <NOANNONCE>14</NOANNONCE> <IDORIGINE>6215365</IDORIGINE> <OBJET>MARCHE 2007-031 FOURNITURES DE LOTS DE SAUVETAGE ET DE PROTECTION CONTRE LES CHUTES</OBJET> <REFMARCHE NULL="TRUE"/> <CP>03000</CP> <ORGA>SDIS 03, 8 RUE DE REFEMBRE B.P. 1677 03000 MOULINS</ORGA> <CONTACT>M. le president du CASDIS 03</CONTACT> <ROLECONTACT> PRM </CONTACTORGA> <DATEENVOIPUBLI NULL="TRUE"/> <DATEPUBLI>04/01/2008</DATEPUBLI> <NOPARUTION>C001</NOPARUTION> <LIEUEXE>ALLIER</LIEUEXE> <DATELIMITEC NULL="TRUE"/> </FICHE> <FICHE> <IDINFO>5313686</IDINFO> <NOANNONCE>64</NOANNONCE> <IDORIGINE>6212865</IDORIGINE> <OBJET>REALISATION 1456 LOGEMENT</OBJET> <REFMARCHE NULL="TRUE"/> <CP>17000</CP> <ORGA>EIFFAGE, 14 RUE ALEXANDRE DUMAS 17000 LA ROCHELLE</ORGA> <CONTACT>M. le president du EIFFAGE</CONTACT> <ROLECONTACT> PRM </CONTACTORGA> <DATEENVOIPUBLI NULL="TRUE"/> <DATEPUBLI>14/02/2008</DATEPUBLI> <NOPARUTION>C001</NOPARUTION> <LIEUEXE>ALLIER</LIEUEXE> <DATELIMITEC NULL="TRUE"/> </FICHE> <FICHE> <IDINFO>7294582</IDINFO> <NOANNONCE>25</NOANNONCE> <IDORIGINE>6224565</IDORIGINE> <OBJET>REALISATION 1456 LOGEMENT</OBJET> <REFMARCHE NULL="TRUE"/> <CP>44000</CP> <ORGA>ETF, 29 RUE DUMAS 44000 NANTES</ORGA> <CONTACT>M. le president du ETF</CONTACT> <ROLECONTACT> PRM </CONTACTORGA> <DATEENVOIPUBLI NULL="TRUE"/> <DATEPUBLI>25/02/2008</DATEPUBLI> <NOPARUTION>C001</NOPARUTION> <LIEUEXE>ALLIER</LIEUEXE> <DATELIMITEC NULL="TRUE"/> </FICHE> [rep]$ cat fichier_partie nombre d'offres recues : 03 * cta (mandataire)/3t * stplm, entreprise couta * tropic transport, v.5) le marche est susceptible d'etre sous-traite : idinfo(6372655) md5(md5:8c6a65112446e6fa31a4975645a7f4e9) v.1) nombre d'offres recues : 02 * cta (mandataire)/3t. * stplm, entreprise couta., v.5) le marche est susceptible d'etre sous-traite : idinfo(5313689) md5(md5:fc593e659ed786dbdc95fa7d95779d70) v.2) nombre d'offres recues : 02 * cta(mandataire)/3t *stplm, entreprise couta, v.5) le marche est susceptible d'etre sous-traite : idinfo(7294582) md5(md5:8e8a73edba8575504ba34e632e10f577) [rep]$ cat bar.sh #! /bin/sh #set -xv sed -n 's/.*idinfo(\([^)]*\)).*/\1/p' fichier_partie | while read line do sed -n '\#<FICHE>#,\#</FICHE>#{ /IDINFO>'"$line"'</{ h :z n \#</DATEPUBLI>#! bz H g p } }' fichier_total done [rep]$ ./bar.sh <IDINFO>6372655</IDINFO> <DATEPUBLI>04/01/2008</DATEPUBLI> <NOPARUTION>C001</NOPARUTION> <IDINFO>7294582</IDINFO> <DATEPUBLI>25/02/2008</DATEPUBLI> <NOPARUTION>C001</NOPARUTION> [rep]$;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
14 sept. 2009 à 19:14
14 sept. 2009 à 19:14
Modifie le script comme ça :
[rep]$ cat bar.sh #! /bin/sh #set -xv sed -n 's/.*idinfo(\([^)]*\)).*/\1/p' fichier_partie | while read line do sed -n '\#<FICHE>#,\#</FICHE>#{ /IDINFO>'"$line"'</{ h :z n \#</DATEPUBLI>#! bz H g s/<[^>]*>//g s/ .*// s/\n/ / p } }' fichier_total done [rep]$ ./bar.sh 6372655 04/01/2008 7294582 25/02/2008 [rep]$
Utilisateur anonyme
15 sept. 2009 à 13:40
15 sept. 2009 à 13:40
rebonjour,
je vous remercie beaucoup pour vos explications. sa va m'aider. j'ai même imprimer un document de 60 pages sur la cmd sed que je vais lire ce weekend.
1) pour répondre à vos questions , je n'ai pas essayé de travailler en local car je n'ai pas linux sur mon PC (je travaille generalement sur windows), je travaille sous linux sur un serveur OVH. Donc , je vais peut etre demander à mon collaborateur , lui ne travaille que sous linux.
2) pour les données, effectivements j'ai beaucoup de lignes qui fait que le traitement prend du temps :
fichier_partie : 13.463 lignes
fichier_total: 9.923.665 lignes
3) pour le systeme ; comme je disais, je travaille sous windows (XP et vista) et j'accede au serveur via Putty. on m'a conseillé d'installer linux ou juste un double boot sur mon PC mais j'esitais (probleme d'espace de disque dur sur mon PC, surtout que j'ai vista !!!).
4) Quelle version de "sed"??? par contre , là je n'ai pas compris!!
Bien cordialement.
je vous remercie beaucoup pour vos explications. sa va m'aider. j'ai même imprimer un document de 60 pages sur la cmd sed que je vais lire ce weekend.
1) pour répondre à vos questions , je n'ai pas essayé de travailler en local car je n'ai pas linux sur mon PC (je travaille generalement sur windows), je travaille sous linux sur un serveur OVH. Donc , je vais peut etre demander à mon collaborateur , lui ne travaille que sous linux.
2) pour les données, effectivements j'ai beaucoup de lignes qui fait que le traitement prend du temps :
fichier_partie : 13.463 lignes
fichier_total: 9.923.665 lignes
3) pour le systeme ; comme je disais, je travaille sous windows (XP et vista) et j'accede au serveur via Putty. on m'a conseillé d'installer linux ou juste un double boot sur mon PC mais j'esitais (probleme d'espace de disque dur sur mon PC, surtout que j'ai vista !!!).
4) Quelle version de "sed"??? par contre , là je n'ai pas compris!!
Bien cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
15 sept. 2009 à 14:21
15 sept. 2009 à 14:21
Concernant la version de sed :
je travaille sous linux sur un serveur OVH
Quelle version de Linux est installé sur ce serveur ?
Pour la doc sur sed :
Sed - Introduction à SED - Part I
Sed - Introduction à SED - Part II
Sed - Introduction à SED - Part III
$ sed --version GNU sed version 4.1.4En fonction de la version de sed (ça dépend souvent du système sur lequel on tourne), il y a certaines limitations, d'où ma demande.
je travaille sous linux sur un serveur OVH
Quelle version de Linux est installé sur ce serveur ?
Pour la doc sur sed :
Sed - Introduction à SED - Part I
Sed - Introduction à SED - Part II
Sed - Introduction à SED - Part III