Bonjour,
Je souhaite ajouter chaque ligne d'un fichier à la fin de chaque ligne d'un autre fichier. Comment dois-je m'y prendre ?
J'ai essayé pas mal de solutions mais ça ne donne rien. Je vois plus comment faire.
Merci !
Version imprimable
Bonjour,
Je souhaite ajouter chaque ligne d'un fichier à la fin de chaque ligne d'un autre fichier. Comment dois-je m'y prendre ?
J'ai essayé pas mal de solutions mais ça ne donne rien. Je vois plus comment faire.
Merci !
Bonjour,
je ne suis pas sûr de bien comprendre le besoin.
Est-ce que tu veux mettre la ligne 1 du premier fichier à la fin de la ligne 1 du second fichier, puis la ligne 2 du premier fichier à la fin de la ligne 2 du second fichier, et ainsi de suite?
Bonjour,
Oui ! C'est exactement ce dont j'ai besoin.
Merci.
Il n'est pas vraiment possible d'écrire dans un fichier existant en préservant son contenu (sauf à la fin). Le plus simple est donc de lire les deux fichiers en entrée et d'écrire dans un troisième fichier. Je vais supposer, pour simplifier, que l'on sait de façon certaine les deux fichiers en entrée ont le même nombre de lignes.
Cela peut donner le code suivant (non testé, mais c'est très simple, je pense que ça devrait marcher sans problème):
N'hésite pas à demander s'il y a quelque chose que tu ne comprends pas.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 use strict; use warnings; my ($fichier1, $fichier2, $sortie) = qw / fichier1.txt fichier2.txt sortie.txt/; open my $FIC1, "<", $fichier1 or die "Ouverture impossible de $fichier1 $!"; open my $FIC2, "<", $fichier2 or die "Ouverture impossible de $fichier2 $!"; open my $OUT, ">", $sortie or die "Ouverture impossible de $sortie $!"; while (<$FIC1>) { chomp (my $ligne = <$FIC2>); print $OUT $ligne, " ", $_; # imprime les deux lignes mises bout à bout, séparées par un espace } close $_ for ($FIC1, $FIC2, $OUT);
Ca marche ! Merci ! Je tentais, en vain, d'écrire dans le premier fichier.
Merci !