Re: Diff : obtenir uniquement les lignes ajoutées
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";"prenom1.nom1@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"prenom2.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"prenom3.nom2@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"prenom4.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"prenom5.nom3@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"prenom6.nom4@domaine.fr";"AdresseLigne1$Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"prenom7.nom4@domaine.fr";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"prenom8.nom4@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
Le fichier Nouveau CSV :
"ProfilA";"NOM1";"Prénom1";"prenom1.nom1@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"prenom2.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"NOUVEAUNOM.NOUVEAUPRENOM@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"prenom3.nom2@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"prenom4.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"prenom5.nom3@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"prenom6.nom4@domaine.fr";"AdresseLigne1
Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"prenom7.nom4@domaine.fr";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"prenom8.nom4@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
$ ./listerLesNouveaux2.pl Aide\ Debian/Ancien.csv Aide\ Debian/Nouveau.csv
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"NOUVEAUNOM.NOUVEAUPRENOM@domaine.fr";"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";"prenom1.nom1@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"prenom2.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"prenom3.nom2@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"prenom4.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"prenom5.nom3@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"prenom6.nom4@domaine.fr";"AdresseLigne1$Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"prenom7.nom4@domaine.fr";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"prenom8.nom4@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM1";"Prénom1";"prenom1.nom1@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom2";"prenom2.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilB";"NOUVEAUNOM";"NOUVEAUPRENOM";"NOUVEAUNOM.NOUVEAUPRENOM@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"NOM2";"prenom3";"prenom3.nom2@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"NOM2";"prenom4";"prenom4.nom2@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
"ProfilA";"nom3";"prenom5";"prenom5.nom3@domaine.fr";"";"";"";"";"";"";""
"ProfilB";"nom4";"prenom6";"prenom6.nom4@domaine.fr";"AdresseLigne1
Adresseligne2";"";"";"";"";"";""
"ProfilB";"nom4";"prenom7";"prenom7.nom4@domaine.fr";"Adresseligne1";"";"";"";"";"";""
"ProfilB";"nom4";"prenom8";"prenom8.nom4@domaine.fr";"AdresseLigne1";"";"";"";"";"";""
Reply to: