Combiner deux fichiers en fonction de colonnes communes

Combiner deux fichiers en fonction de colonnes communes - Shell/Batch - Programmation

Marsh Posté le 15-04-2009 à 00:04:41    

Bonjour,
 
J'ai un fichier .csv séparé par des | de ce type :
 
nom_projet|nom_job|lien_sortie|id_col_sortie|nom_col_sortie|type|taille|derivation|lien_entree|id_col_entree|nom_col_entree
 
Exemple :
 
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|1|ID_DWH_VUE_PERS|3|38|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.ID_DWH_VUE_PERS|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|2|ID_DWH_VUE_PERS
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|3|ID_DWH_CHX_CNTCT|3|38|De_CHX_CNTCT_ref.ID_DWH_CHX_CNTCT|De_CHX_CNTCT_ref|4|ID_DWH_CHX_CNTCT
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|5|REF_ARTICLE|3|9|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.TCL1PLHREF|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|6|TCL1PLHREF
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|7|COD_JOUR_SEMAINE|1|1|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.NJ|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|8|NJ
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|9|HH_MM_DEB_PLG_HORAIR|3|4|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.HPHDEB|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|10|HPHDEB
nom_projet|nom_job|Ve_Fic_rejet_Cloture2_CHOIXCNTCTPLGHOR|11|ID_DWH_VUE_PERS|4|38|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.ID_DWH_VUE_PERS|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|12|ID_DWH_VUE_PERS
nom_projet|nom_job|Ve_Fic_rejet_Cloture2_CHOIXCNTCTPLGHOR|29|HH_MM_DEB_PLG_HORAIR|3|4|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.HPHDEB|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|30|HPHDEB
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|31|ID_DWH_VUE_PERS|4|38|De_TAB_VUE_PERS__TAB_PERS.ID_DWH_VUE_PERS|De_TAB_VUE_PERS__TAB_PERS|32|ID_DWH_VUE_PERS
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|33|NUM_PERS|4|8|De_CHOIXCNTCTPLGHOR_CLOTURE.NPER|De_CHOIXCNTCTPLGHOR_CLOTURE|34|NPER
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|35|COD_TYP_VUE|1|2|De_CHOIXCNTCTPLGHOR_CLOTURE.RVUPER|De_CHOIXCNTCTPLGHOR_CLOTURE|36|RVUPER
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|37|NUM_VUE|4|2|De_CHOIXCNTCTPLGHOR_CLOTURE.NVUPER|De_CHOIXCNTCTPLGHOR_CLOTURE|38|NVUPER
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|39|COD_CATG_JURI|1|2|De_CHOIXCNTCTPLGHOR_CLOTURE.CCTGJUR|De_CHOIXCNTCTPLGHOR_CLOTURE|40|CCTGJUR
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|41|TYP_SUPPORT_COMMUNICATION|1|1|De_CHOIXCNTCTPLGHOR_CLOTURE.RSUPCMU|De_CHOIXCNTCTPLGHOR_CLOTURE|42|RSUPCMU
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|43|ID_ADRS_SUPPORT_COMMUNICATION|1|26|De_CHOIXCNTCTPLGHOR_CLOTURE.IDADRCMU|De_CHOIXCNTCTPLGHOR_CLOTURE|44|IDADRCMU
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|45|TCL1PLHREF|4|9|De_CHOIXCNTCTPLGHOR_CLOTURE.TCL1PLHREF|De_CHOIXCNTCTPLGHOR_CLOTURE|46|TCL1PLHREF
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|47|NJ|1|1|De_CHOIXCNTCTPLGHOR_CLOTURE.NJ|De_CHOIXCNTCTPLGHOR_CLOTURE|48|NJ
nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|49|HPHDEB|4|4|De_CHOIXCNTCTPLGHOR_CLOTURE.HPHDEB|De_CHOIXCNTCTPLGHOR_CLOTURE|50|HPHDEB
nom_projet|nom_job|Ve_Fic_rejet_Cloture1_CHOIXCNTCTPLGHOR|51|RVUPER|1|2|De_CHOIXCNTCTPLGHOR_CLOTURE.RVUPER|De_CHOIXCNTCTPLGHOR_CLOTURE|52|RVUPER
nom_projet|nom_job|Ve_Fic_rejet_Cloture1_CHOIXCNTCTPLGHOR|53|NPER|4|8|De_CHOIXCNTCTPLGHOR_CLOTURE.NPER|De_CHOIXCNTCTPLGHOR_CLOTURE|54|NPER
 
 
Pour chaque ligne du fichier, si le lien_entree (9eme colonne) correspond au lien_sortie (3eme colonne) d'une autre ligne du fichier et que les nom_projet et nom_job sont identiques, je voudrais afficher les informations "d'entrée" de la ligne trouvée.
 
 
Par exemple pour la ligne 3, le lien_entree est égal au lien sortie de la ligne 15 (avec nom_projet et nom_job identique) :
 
ligne 3 :  nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|5|REF_ARTICLE|3|9|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture.TCL1PLHREF|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|6|TCL1PLHREF
 
ligne 15 : nom_projet|nom_job|Ve_Hash_CHOIXCNTCTPLGHOR_Cloture|45|TCL1PLHREF|4|9|De_CHOIXCNTCTPLGHOR_CLOTURE.TCL1PLHREF|De_CHOIXCNTCTPLGHOR_CLOTURE|46|TCL1PLHREF
 
Je voudrais donc afficher pour cet exemple:
 
nom_projet|nom_job|Ve_TAB_CHOIXCNTCTPLGHOR|5|REF_ARTICLE|3|9|De_CHOIXCNTCTPLGHOR_CLOTURE.TCL1PLHREF|De_CHOIXCNTCTPLGHOR_CLOTURE|46|TCL1PLHREF
 
Vous connaissez un moyen de faire ça? avec quelles commandes?

Reply

Marsh Posté le 15-04-2009 à 00:04:41   

Reply

Marsh Posté le 15-04-2009 à 00:44:02    

join ?

Reply

Sujets relatifs:

Leave a Replay

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