Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1038 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  concaténation de lignes de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

concaténation de lignes de fichiers

n°1333440
bloomingda​ls
Posté le 25-03-2013 à 12:54:00  profilanswer
 

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?

mood
Publicité
Posté le 25-03-2013 à 12:54:00  profilanswer
 

n°1333449
cri88
Posté le 25-03-2013 à 14:22:53  profilanswer
 

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

n°1333450
guepe
J'ai du noir sur la truffe ?
Posté le 25-03-2013 à 14:23:48  profilanswer
 

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.


---------------
Un blog qu'il est bien
n°1333456
bloomingda​ls
Posté le 25-03-2013 à 15:11:54  profilanswer
 

merci bcp

n°1333477
blazkowicz
Posté le 25-03-2013 à 22:52:32  profilanswer
 

J'essaierais quelque chose en bash

n°1333478
blazkowicz
Posté le 25-03-2013 à 22:58:49  profilanswer
 

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é)
 

n°1333485
bardiel
Debian powa !
Posté le 26-03-2013 à 09:23:51  profilanswer
 

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 ? [:spamatounet]  
Grossièrement :

#!/bin/bash
i=0
while read
do
alpha=sed -n "${i}p" fichier1  
beta=sed -n "${i}p" fichier2  
echo "${alpha}:${beta}\n" > fichier3
((i++))
done < fichier1


Enfin c'est crados comme code, et probablement à débug [:suri_2002]


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1333507
blazkowicz
Posté le 26-03-2013 à 14:12:25  profilanswer
 

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

n°1333537
bardiel
Debian powa !
Posté le 26-03-2013 à 20:50:33  profilanswer
 

blazkowicz a écrit :

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.


J'avais prévenu [:cosmoschtroumpf]  

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 [:tinostar]  

blazkowicz a écrit :

de toute façon il y a  

paste -d : fichier1 fichier2



Euh... effectivement [:clooney11]


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  concaténation de lignes de fichiers

 

Sujets relatifs
LINUX - Suppression par erreur des fichiers sytemeCompresser tous les fichiers d'une certaine extension dans un dossier
Corriger des noms de fichiersSupprimer certains fichiers de dossiers et sous dossiers
compression/concatenation/vitesse[Shell] Comparaison de dates entre deux fichiers
Afficher contenu lignes de fichiers avec critères 
Plus de sujets relatifs à : concaténation de lignes de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR