Le 25/10/2017 à 09:00, Dominique Dumont a écrit :
On Tuesday, 24 October 2017 21:46:28 CEST Migrec wrote:
Mais quoique je fasse, la sortie inclut toute de même les lignes faisait
suite à un retour chariot... Solution temporaire : supprimer la colonne
Adresse avec un tableur et passer le script.
Je ne comprends toujours pas le problème. Envoie un exemple si tu veux qu'on
t'aide plus. Sinon on perd trop de temps.
Merci ! J'ai du épurer le fichier des données véritables mais en gros ça donne ceci :

Le fichier Ancien.csv :
"ProfilA";"NOM1";"Prénom1";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"[email protected]";"AdresseLigne1$Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"[email protected]";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"[email protected]";"AdresseLigne1";"";"";"";"";"";""

Le fichier Nouveau CSV :
"ProfilA";"NOM1";"Prénom1";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"[email protected]";"AdresseLigne1
Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"[email protected]";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"[email protected]";"AdresseLigne1";"";"";"";"";"";""

$ ./listerLesNouveaux2.pl Aide\ Debian/Ancien.csv Aide\ Debian/Nouveau.csv
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
Adresseligne2";"";"";"";"";"";""


J'ai bien ma nouvelle ligne mais je me retrouve aussi avec cette ligne parasite qui est la suite d'une ligne se terminant par un retour chariot à la dos. Je précise que les fichiers sont encodés en dos. Ci-joint les fichiers pour examen.


$ cat listerLesNouveaux2.pl
#!/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: $!";

my %found_email = map { (split /;/)[3] => 1 } <$old>;
map {print if not $found_email{ (split /;/)[3] }} <$new>;

--
Migrec
"ProfilA";"NOM1";"Prénom1";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"[email protected]";"AdresseLigne1$Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"[email protected]";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM1";"Prénom1";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"[email protected]";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"[email protected]";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"[email protected]";"AdresseLigne1
Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"[email protected]";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"[email protected]";"AdresseLigne1";"";"";"";"";"";""

Répondre à