concaténation de lignes de fichiers - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 25-03-2013 à 14:22:53
Bonjour,
Effectivement, la plupart des logiciels vont copier un fichier après l'autre.
Je te propose deux méthodes, il a probablement mieux :
1/ Avec Excel
Ouvrir le 1er fichier, tout sélectionner et copier dans le 1ère colonne d'une feuille Excel
Ouvrir le 2ème fichier, tout sélectionner et copier dans le 2ème colonne d'une feuille Excel
Et en 3ème colonne écrire la formule =CONCATENER(A1;":";B1)
Copier et collage spécial valeur de la 3ème colonne
Suppression de la 1ere et 2ème colonnes.
Enregistrement du fichier en csv, txt...
2/ Toujours avec Excel
Ecrire une petite macro vba qui lira les deux fichiers et créera ton fichier cible.
Cordialement
Marsh Posté le 25-03-2013 à 14:23:48
Un script, avec deux boucles... Je vois pas bien comment faire autrement.
Le plus simple à mon avis c'est de faire un script python, si tu ne connais aucun langage de script.
Marsh Posté le 25-03-2013 à 22:58:49
sinon, j'ai eu une idée, j'ai fait apropos merge
là-dedans il y a : paste (1) - merge lines of files
donc tu as déjà.. un programme conçu uniquement pour faire ce boulot!
je te laisse trouver l'option pour avoir ":" comme séparateur.
(peut-être que je ne l'aurais pas trouvé, si j'avais installé l'OS en français et que les descriptions de apropos étaient en français. ou alors "apropos fusionner" aurait marché)
Marsh Posté le 26-03-2013 à 09:23:51
En bash avec 2 sed qui récupèrent chaque ligne de chaque fichier, les concatènent avec le séparateur de ton choix et mettent le résultat dans un 3ème fichier ?
Grossièrement :
#!/bin/bash |
Enfin c'est crados comme code, et probablement à débug
Marsh Posté le 26-03-2013 à 14:12:25
joli
avec deux processus sed lancés à chaque itération,, l'efficacité doit être bien pourrave mais je suppose que le traitement reste quand même quasi instantané du point de vue de l'utilisateur humain.
après, que doit-il se passer si les fichiers ne sont pas de la même longueur.. si fichier2 est plus long que fichier1, en particulier.
de toute façon il y a
paste -d : fichier1 fichier2 |
Marsh Posté le 26-03-2013 à 20:50:33
blazkowicz a écrit : joli |
J'avais prévenu
blazkowicz a écrit : après, que doit-il se passer si les fichiers ne sont pas de la même longueur.. si fichier2 est plus long que fichier1, en particulier. |
Dans ce sens là il n'y aura pas de soucis vu qu'en entrée pour le comptage des lignes je fais... une lecture ligne à ligne du fichier1.
Par contre dans l'autre cas (fichier1 plus grand que fichier2) le résultat sera intéressant à voir
blazkowicz a écrit : de toute façon il y a
|
Euh... effectivement
Marsh Posté le 25-03-2013 à 12:54:00
bonjour
j'ai deux fichiers qui contiennent plusieurs lignes je voudrais les concaténer ligne par ligne. par exemple
fichier 1
0000
0000
0000
fichier 2
1111
1111
1111
alors mon fichier final aura la forme suivante
0000:1111
0000:1111
0000:1111
j'ai essayé avec cat mais ca ecrit a la fin du fichier
comment je peux faire ca?