Bon, c'est pas parfait, mais cela fait le job :
#!/usr/bin/perl
my @lower = ('a'..'z');
my @upper = ('A'..'Z');
my @digit = ('0'..'9');
my $row0 = <STDIN>; # ignore la première ligne (noms des colones)
print $row0;
while(read(STDIN,$b,1)) {
if($b=~/[a-z]/) { print $lower[int rand @lower]; }
elsif($b=~/[A-Z]/) { print $upper[int rand @upper]; }
elsif($b=~/[0-9]/) { print $digit[int rand @digit]; }
else { print $b; }
}
Ce script ne touche pas à la première ligne du CSV qui contient normalement les noms des colonnes, puis cela remplace tous les caractères ASCII minuscules pour une minuscule au hasard, idem pour les majuscules et les chiffres.
Pour faire un outil pro, il faudrait analyser par cellule et reconnaitre une date, une heure, des coordonnées GPS, etc. Et les remplacer par des données cohérentes.
Commentaires