A voir également:
- [Shell]Concatener les lignes de plusieurs fic
- Concaténer pdf - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Concatener deux cellules excel - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Site de vente en ligne particulier - Guide
3 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 897
3 févr. 2006 à 19:14
3 févr. 2006 à 19:14
Salut,
Ceci devrait faire l'affaire :
Ceci devrait faire l'affaire :
[jp@Mandrake tmpfs]$ cat script.sh #!/bin/bash ## Définition des variables ## # Variable de référence pour le nombre de lignes des fichiers REF=`cat fich1.txt | wc -l` # Variable compteur COUNT=1 # Boucle # Tant que le compteur est inférieur ou égal au nombre de lignes while [ "$COUNT" -le "$REF" ]; do # On affiche la ligne correspondant au "compteur" avec le #+ filtre "sed", que l'on redirige (ajoute) vers le fichier #+ final. # L'option "-n" de la commande "echo" sert à éviter le #+ saut de ligne. Remarquer l'espace avant le guillemet #+ final. echo -n "`sed -n "$COUNT"p fich1.txt` " >> fichier.txt echo -n "`sed -n "$COUNT"p fich2.txt` " >> fichier.txt # Pas d'option "-n" ici et pas d'espace en fin echo "`sed -n "$COUNT"p fich3.txt`" >> fichier.txt # On incrémente le compteur COUNT=$(expr $COUNT + 1) done [jp@Mandrake tmpfs]$La preuve :
[jp@Mandrake tmpfs]$ cat fich1.txt aaaa aaa bbb bbb cccc ccccc [jp@Mandrake tmpfs]$ cat fich2.txt AAA AAA BBB BBB CCC CCC [jp@Mandrake tmpfs]$ cat fich3.txt 111 1111 222 2222 333 3333 [jp@Mandrake tmpfs]$ sh script.sh [jp@Mandrake tmpfs]$ cat fichier.txt aaaa aaa AAA AAA 111 1111 bbb bbb BBB BBB 222 2222 cccc ccccc CCC CCC 333 3333 [jp@Mandrake tmpfs]$C'est pas trop élégant, mais ça marche... enfin chez moi en tous les cas ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
3 févr. 2006 à 19:36
3 févr. 2006 à 19:36
Bonsoir,
une variante avec Perl, donc pareil un script
une variante avec Perl, donc pareil un script
#! /usr/bin/perl use warnings; use strict; my %new_file=(); open A,"<","a.txt" or die "Impossible d'ouvrir le fichier : $!\n"; open B,"<","b.txt" or die "Impossible d'ouvrir le fichier : $!\n"; open C,"<","c.txt" or die "Impossible d'ouvrir le fichier : $!\n"; open my $file,">","/home/lamitest/corbeille/concatenation3.txt" or die "Impossible de créer le fichier : $!\n"; while (my $ligne = (<A> || <B> || <C>)){ chomp $ligne; push @{$new_file{$.}},$ligne; } close A; close B; close C; foreach ( sort keys %new_file ) { print $file "@{$new_file{$_}}\n"; }Le résultat
[lamitest@localhost corbeille]$ cat a.txt aaaa aaa bbb bbb cccc ccccc [lamitest@localhost corbeille]$ cat b.txt 111 1111 222 2222 333 3333 [lamitest@localhost corbeille]$ cat c.txt AAA AAA BBB BBB CCC CCC [lamitest@localhost corbeille]$ perl /home/lamitest/corbeille/lignes_3_fic.pl [lamitest@localhost corbeille]$ cat concatenation3.txt aaaa aaa 111 1111 AAA AAA bbb bbb 222 2222 BBB BBB cccc ccccc 333 3333 CCC CCC [lamitest@localhost corbeille]$