PERL - Ecrire en colonne dans un fichier
Résolu
trashvip
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
trashvip Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
trashvip Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un petit souci que voilà :
Je souhaiterai copier des données dans un fichier.
Cependant les données que j'ajoute, il faudrait qu'elles "repartent du haut du fichier" : sur une nouvelle colonne.
Par exemple :
Voilà mon fichier avant la copie :
1
2
3
4
5
et je souhaiterai copier de nouvelles valeurs (a,b,c,d,e) dedans non pas à la suite mais sur une nouvelle colonne (après un test if), pour obtenir ceci :
1 a
2 b
3 c
4 d
5 e
Pour le moment j'ai un code PERL tq:
open(OUT, '>outall.txt') || die ("Erreur d'ouverture du fichier");
....
while <>
{
my $lignecomplete2 = $_ ;
my @maligne2 = split(/\s+/,$lignecomplete2);
print OUT "$maligne2[3]\t\n"; <<<<< ligne à modifier pour obtenir une copie sur une nouvelle colonne
}
Y-a-t-il qqun pour m'éclairer ?
J'espère avoir été clair.
Merci d'avance pour vos réponses.
Cdlt.
J'ai un petit souci que voilà :
Je souhaiterai copier des données dans un fichier.
Cependant les données que j'ajoute, il faudrait qu'elles "repartent du haut du fichier" : sur une nouvelle colonne.
Par exemple :
Voilà mon fichier avant la copie :
1
2
3
4
5
et je souhaiterai copier de nouvelles valeurs (a,b,c,d,e) dedans non pas à la suite mais sur une nouvelle colonne (après un test if), pour obtenir ceci :
1 a
2 b
3 c
4 d
5 e
Pour le moment j'ai un code PERL tq:
open(OUT, '>outall.txt') || die ("Erreur d'ouverture du fichier");
....
while <>
{
my $lignecomplete2 = $_ ;
my @maligne2 = split(/\s+/,$lignecomplete2);
print OUT "$maligne2[3]\t\n"; <<<<< ligne à modifier pour obtenir une copie sur une nouvelle colonne
}
Y-a-t-il qqun pour m'éclairer ?
J'espère avoir été clair.
Merci d'avance pour vos réponses.
Cdlt.
A voir également:
- PERL - Ecrire en colonne dans un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Déplacer colonne excel - Guide
- Fichier rar - Guide
6 réponses
Salut,
lami20j@debian:~$ cat a.txt 1 2 3 4 5 lami20j@debian:~$ cat b.txt a b c d e lami20j@debian:~$ cat colonne.pl #!/usr/bin/perl use strict;use warnings; open A,"a.txt" or die "E/S : $!\n"; open B,"b.txt" or die "E/S : $!\n"; open C,">>c.txt" or die "E/S : $!\n"; while(defined(my $x=<A>) and defined(my $y=<B>)){ chomp $x and print C "$x $y"; } __END__ lami20j@debian:~$ perl colonne.pl lami20j@debian:~$ cat c.txt 1 a 2 b 3 c 4 d 5 e
Tu lis tout ton fichier d'entrée ;
tu en fais ton tableau en mémoire dans ton programme ;
tu le bidouilles comme tu le souhaite ;
et après tu fais une simple écriture de fichier à partir du nouveau tableau par ligne.
tu en fais ton tableau en mémoire dans ton programme ;
tu le bidouilles comme tu le souhaite ;
et après tu fais une simple écriture de fichier à partir du nouveau tableau par ligne.
Merci lami20j !!!
Cependant mon problème est un peu plus compliqué que cela :
Il s'agit d'ajouter à un fichier "out.txt" les données d'un autre fichier "in.txt" (par ex).
Le fichier "in.txt" est un fichier qui est généré par d'autre processus et détruit (reconstruit avec d'autres données) à chaque retour de boucle while.
Ainsi, je souhaite obtenir un fichier "out.txt" avec les données de "in.txt" ajouté en colonne.
Je n'ai pas de problème pour rajouter les données de "in.txt" à chaque boucle à la fin du fichier "out.txt". Mais pour mettre les données "à coté" (i.e en colonne) je n'y arrive pas.
Suis-je clair ?
Pour résumer, comment rajouter des données à un fichier non pas à la fin de ce dernier mais sur une autre colonne?
Merci d'avance et bon w-e.
Cependant mon problème est un peu plus compliqué que cela :
Il s'agit d'ajouter à un fichier "out.txt" les données d'un autre fichier "in.txt" (par ex).
Le fichier "in.txt" est un fichier qui est généré par d'autre processus et détruit (reconstruit avec d'autres données) à chaque retour de boucle while.
Ainsi, je souhaite obtenir un fichier "out.txt" avec les données de "in.txt" ajouté en colonne.
Je n'ai pas de problème pour rajouter les données de "in.txt" à chaque boucle à la fin du fichier "out.txt". Mais pour mettre les données "à coté" (i.e en colonne) je n'y arrive pas.
Suis-je clair ?
Pour résumer, comment rajouter des données à un fichier non pas à la fin de ce dernier mais sur une autre colonne?
Merci d'avance et bon w-e.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question