Le 20/09/2017 à 20:43, Migrec a écrit :
Je ne connais pas du tout le perl (et du coup pas tout compris...)
mais j'ai réussi à bricoler un peu pour avoir un résultat qui me
parait satisfaisant.
Merci beaucoup.
Le script :
#!/usr/bin/perl -w
my $file1 = $ARGV[0];
my $file2 = $ARGV[1];
open(my $old, '<', $file1) or die "Can't open $file1: $!";
open(my $new, '<', $file2) or die "Can't open $file2: $!";
# Lire et indexer le premier fichier
my %lines;
foreach (<$old>) {
my ($f1, $f2, $f3, $email, $f4, $f5, $f6, $f7,$f8) = split /;/;
$lines{$email} = 1;
}
# Imprimer ce qui n'est pas dans le premier fichier
foreach (<$new>) {
my ($f1, $f2, $f3, $email, $f4, $f5, $f6, $f7,$f8) = split /;/;
print unless exists $lines{$email};
}
Bonjour,
Je déterre ce fil de discussion car l'interface qui produit mon fichier
en entrée a changé. Grr.
Je me retrouve avec un fichier issu de DOS (donc des fins de lignes avec
^M$). Jusque là tout va bien mais désormais, j'ai également un caractère
$ dans l'un des champs (c'est un champ de type adresse qui peut contenir
4 lignes donc 3 $ potentiellement).
Option 1
Je traite uniquement les lignes qui commencent par ". Je contourne le
problème. Comment puis-je faire cela ?
Option 2
J'indique à Perl qu'il s'agit de la même ligne lorsqu'il y a un $. Mais
comment ?
--
Migrec