Concaténer deux fichiers si même pattern dans un troisième

bob737 -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je viens vers vous car je m'arrache les cheveux sur un ksh.

J'ai un fichier REF qui contient les champs suivants:
Groupe1;toto;***@***
Groupe2;toto;***@***
Groupe3;titi;***@***

Pour chaque ligne, il y a un 3 fichiers associés.
Groupe1.stock.csv
Groupe1.flux.csv
Groupe1.flux_detail.csv

Groupe2.stock.csv
Groupe2.flux.csv
Groupe2.flux_detail.csv

Groupe3.stock.csv
Groupe3.flux.csv
Groupe3.flux_detail.csv

Je voudrais concaténer les fichiers GroupeX.stock.csv et GroupeX.flux.csv et GroupeX.flux_detail.csv si et seulement le mail du troisième champ REF est identique. Dans mon exemple les deux 1ère ligne du champ REF.

Merci de votre aide.

6 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Dans quel langage?
    0
  2. bob737 Messages postés 157 Statut Membre
     
    pardon ksh.
    0
  3. bob737 Messages postés 157 Statut Membre
     
    Je me dis qu'il y a quelque chose à faire avec awk plutôt que de me lancer dans des boucles...
    0
  4. UnGars
     
    Salut,

    si et seulement le mail du troisième champ REF est identique.
    Identique à quoi ?

    Dans mon exemple les deux 1ère ligne du champ REF.
    Oui, et ???
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bob737 Messages postés 157 Statut Membre
     
    ok, je n'avais pas vu que les adresses mail avaient été remplacées par des "**" en publiant. Désolé.
    Groupe1;toto;mail_de_toto
    Groupe2;toto;mail_de_toto
    Groupe3;titi;mail_de_titi

    Donc je souhaite concaténer les fichiers de Goupe1 et Groupe2.
    Merci.
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    quelque chose comme ça ?
    $ awk -F ";" '{t[$3]=t[$3] " " $1 ".*.csv"; s[$3]++} END {for (n in t)if(s[n]>1)print "cat " t[n] " > Group." n ".csv"}' REF
    cat Groupe1.*.csv Groupe2.*.csv > Group.mail_de_toto.csv

    ajouter
    | bash -x
    pour exécuter les commandes
    0