supprimer des entrées d'un fichier texte

supprimer des entrées d'un fichier texte - Perl - Programmation

Marsh Posté le 06-04-2006 à 11:35:49    

Bonjour,
Je suis debutant en Perl et j'ai un petit probleme .

 

J'ai deux fichier  'ALL.txt'  et 'SUPP'

 

j'ai envie de supprimer toutes les entrées du fichier SUPP du fichier ALLtxt

 

Vous avez une idées ?

 

MErci

 

Reply

Marsh Posté le 06-04-2006 à 11:35:49   

Reply

Marsh Posté le 06-04-2006 à 11:59:15    

qu'appel tu une entrée? une ligne?
si c'est el cas alors tu peux mettre toutes les entrée de SUPP dans une hash, puis parcourir ALL et mettre toutes les entrée que tu ne trouve pas dans cette hash dans un tableau, puis ecrire ce tableau dans un nouveau fichier (ou dans ALL que tu réouvre)
 
ca donne en gros ca:
 

Code :
  1. my %deleted;
  2. open(IN, '<', 'SUPP') || die $!;
  3. while(<IN> ) {
  4.   $deleted{$_} = 1
  5. }
  6. close IN;
  7. my @keep;
  8. open(IN, '<', 'ALL.txt') || die $!;
  9. while(<IN> ) {
  10.   push @keep, $_ unless $deleted($_);
  11. }
  12. close IN;
  13. print OUT, @keep;
  14. close OUT;


 
en version plus concise :
 

Code :
  1. open(IN, '<', 'SUPP') || die $!;
  2. my %deleted = map {$_=>1} <IN>;
  3. close IN;
  4. open(IN, '<', 'ALL.txt') || die $!;
  5. open(OUT, '>', 'ALL2.txt') || die $!;
  6. print OUT grep{not $deleted{$_}) <IN>;
  7. close IN;
  8. close OUT;

Reply

Marsh Posté le 06-04-2006 à 12:01:19    

Oui c çà merci  .. en fait je cherche les lignes qui ne sont le fichiers ALL.txt et pas dans le SUPP.  en tout cas merci de ta reponse si rapide..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed