précédant | suivant | sommaire

Clean doublons




Dégager les doublon d'un répertoire.

#!/usr/bin/perl -w
# remd: comment nettoyer un repertoire de tout les doublons ou equivalants.
# alain Adelmar Pessac 23 Mai 2001.
$x=("x"x10)."--".("x"x10)."\n";
print"Indiquez quel répértoire vous désirez traiter\n";
$rep=<STDIN>;
chomp$rep;

while(!(-e$rep)){
print"Veuillez entrez le nom correct du répértoire\n";
($erreur,$null)=split(/\/$/,$rep);
opendirD,"$rep"ordie"Ouverture impossible $!";
@repertoire=sort(readdirD);
foreach$repertoire(@repertoire){
print"$repertoire\n";
}
print"$x\nVeuillez donc réctifier votre choix\n";
$rep=<STDIN>;
chomp$rep;
}

&ouvre_rep(@fichiers);
print"quel extention voulez vous détruire par rapport au doublon?\n";
print"exemple: man\.1 et man\.1\.gz écrivez gz pour detruire man\.1\.gz\n";
$resp=<STDIN>;
chomp$resp;

$a=0;
foreach$fichier(@fichiers){
if($a==0){
$fichiera=$fichier;
$a++;
}
else{
$fichierb=$fichier;
$a--;
}
($root,$ext)=split(/\.$/,$fichier);
if($exteq$resp){
$fichierd=$fichier;
if($rooteq$fichiera){
&choix($detruire);
if($detruireeq"a"){
$fichiera="$fichiera"."_delete";
push@nfichier,$fichierb;
next;
}
else{
$fichierb="$fichierb"."_delete";
push@nfichier,$fichiera;
next;
}
}
if($rooteq$fichierb){
&choix($detruire);
if($detruireeq"b"){
$fichierb="$fichierb"."_delete";
push@nfichier,$fichiera;
next;
}
else{
$fichiera="$fichiera"."_delete";
push@nfichier,$fichierb;
next;
}
}
else{
$a=0;
push@nfichier,$fichier;
}
}

}

$rangement="/tmp/tmp/rangement/";
execmkdir"$rangement";
opendirR,">rangement"ordie"Ouverture impossible $!";
printR@nfichier;
closedirR||die"Fermeture impossible $!";
 

subchoix($detruire){
print"fichier(a)= $fichiera\n";
print"fichier(b) trouvé = $fichierd\n";
print"lequel voulez vous détruire: (a ou b)\n";
chomp($detruire=<STDIN>);
return$detruire;
}

subouvre_rep(@fichiers){
my(@fichiers)=@_;

opendirR,"$rep"ordie"Ouverture impossible $!";
@fichiers=sort(readdirR);
$a=0;
foreach$fichier(@fichiers){
if($a==1){
print"$fichier\n";
$a--;
}
else{
print"$fichier\t";
$a++;
}
}
print"\n";
return(@fichiers);
}

END;



précédant | suivant | sommaire