[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: