Perl supprimer les fichiers critere taille
Résolu/Fermé
tematek
Messages postés
5
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2007
-
31 janv. 2007 à 19:46
tematek Messages postés 5 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 5 mars 2007 - 1 févr. 2007 à 05:21
tematek Messages postés 5 Date d'inscription mercredi 31 janvier 2007 Statut Membre Dernière intervention 5 mars 2007 - 1 févr. 2007 à 05:21
A voir également:
- Perl supprimer les fichiers critere taille
- Comment réduire la taille d'un fichier - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer les fichiers temporaires windows 10 - Guide
6 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
31 janv. 2007 à 22:25
31 janv. 2007 à 22:25
Exercice 1
#!/usr/bin/perl # use warnings;use strict; use File::Find; use File::Basename; my (%ext,$fic); sub extension{ $fic = basename($File::Find::name); if ($fic =~ /^\./){ # traitement de fichier cachés # sachant que sous GNU/Linux les fichiers cachés # commencent avec un point on risque de compter # tous les fichiers cachés en tant qu'extension $ext{$1}++ if $fic =~ /^\..+\.([a-z]+)$/i; } else { $ext{$1}++ if $fic =~ /.*\.([a-z]+)$/i; } } find (\&extension,$ARGV[0]); foreach (sort keys %ext){ printf "extension %7s => %7s fois\n",$_,$ext{$_}; }Résultat
lami20j@debian:~/trash$ perl exo_tematek1.pl ../bin/my_perl_script/ extension bak => 1 fois extension bdf => 2 fois extension c => 3 fois extension conf => 1 fois extension css => 1 fois extension csv => 2 fois extension dat => 1 fois extension dot => 1 fois extension exo => 2 fois extension gz => 1 fois extension html => 8 fois extension orig => 4 fois extension pl => 138 fois extension pm => 3 fois extension sh => 1 fois extension src => 1 fois extension tmp => 2 fois extension txt => 12 fois extension xls => 1 fois
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
31 janv. 2007 à 21:10
31 janv. 2007 à 21:10
Salut,
Le script
Le résultat
Le script
#!/usr/bin/perl # use warnings;use strict; use File::Find; my $rep = "/home/lami20j/trash/examen"; my (@fic_vide,@chemin_fic_supp,$nbfic_supp); sub fic_vide{ push @fic_vide, $File::Find::name if -z } find (\&fic_vide,$rep); $nbfic_supp = (@chemin_fic_supp = grep { unlink } @fic_vide); print "$nbfic_supp fichiers ont été supprimés.\n"; print "Voici la liste de fichiers supprimés :\n"; print "$_\n" foreach @chemin_fic_supp;
Le résultat
lami20j@debian:~/trash$ ls -R /home/lami20j/trash/examen/ /home/lami20j/trash/examen/: a fichier_non_vide rep1 rep2 /home/lami20j/trash/examen/rep1: a /home/lami20j/trash/examen/rep2: b lami20j@debian:~/trash$ perl supp_fic_taill0.pl 3 fichiers ont été supprimés. Voici la liste de fichiers supprimés : /home/lami20j/trash/examen/a /home/lami20j/trash/examen/rep1/a /home/lami20j/trash/examen/rep2/b lami20j@debian:~/trash$ ls -R /home/lami20j/trash/examen/ /home/lami20j/trash/examen/: fichier_non_vide rep1 rep2 /home/lami20j/trash/examen/rep1: /home/lami20j/trash/examen/rep2: lami20j@debian:~/trash$ cat examen/fichier_non_vide le seul fichier non vide lami20j@debian:~/trash$
tematek
Messages postés
5
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2007
31 janv. 2007 à 21:32
31 janv. 2007 à 21:32
t'es mon sauveuteur !!! je ne veux pas abuser, mais je coule mon examen et ma toute ma derniere session et tout mon année en consequence, j'ai encore deux quesion pour me sauver la vie, tu peux tu m'aider avec au moins un à ton choix:
1.
un script qui prends un nom de répertoire (chemin relatif ou absolu) et construit un hachage qui contient les extensions comme clés et le nombre de fichiers ayant cette extension comme valeurs. Toute l'arboresce de ce répertoire doit être parcorue. Afficher
le hachage ainsi construit.
*Remarque: si on a un fichier qui se nomme toto.pl.xls.doc, son extension c'est .doc
et non pas xls ni pl.
2.
un script qui prend un nom de chaque repertoire (chemin relatif ou absolu) et affiche une seule fois le nom de chaque répertoire qui contient au moins un fichier Perl. Toute l'arborescence de ce répertoire qui contient au moins un fichier Perl. Toute l'arborescence de ce répertoire doit être parcourue. On suppose que le fichier qui contient la ligne #!/usr/bin/perl est un fichier Perl. (La construction d'un hachage peut vous aider
pour cet exercice)
prends un le plus facile a ton choix
(j'ai une grande dette envers toi )
1.
un script qui prends un nom de répertoire (chemin relatif ou absolu) et construit un hachage qui contient les extensions comme clés et le nombre de fichiers ayant cette extension comme valeurs. Toute l'arboresce de ce répertoire doit être parcorue. Afficher
le hachage ainsi construit.
*Remarque: si on a un fichier qui se nomme toto.pl.xls.doc, son extension c'est .doc
et non pas xls ni pl.
2.
un script qui prend un nom de chaque repertoire (chemin relatif ou absolu) et affiche une seule fois le nom de chaque répertoire qui contient au moins un fichier Perl. Toute l'arborescence de ce répertoire qui contient au moins un fichier Perl. Toute l'arborescence de ce répertoire doit être parcourue. On suppose que le fichier qui contient la ligne #!/usr/bin/perl est un fichier Perl. (La construction d'un hachage peut vous aider
pour cet exercice)
prends un le plus facile a ton choix
(j'ai une grande dette envers toi )
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
31 janv. 2007 à 22:44
31 janv. 2007 à 22:44
Je ne comprends pas très bien le 2ème exo
veux-tu être plus explicite?
et aussi de me dire ce que tu veux afficher comme résultat.
veux-tu être plus explicite?
et aussi de me dire ce que tu veux afficher comme résultat.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
31 janv. 2007 à 23:48
31 janv. 2007 à 23:48
Re,
Exercice 2
Exercice 2
#!/usr/bin/perl # use warnings;use strict; use File::Find; use File::Basename; my %perl_script; sub fic_perl{ $perl_script{dirname($File::Find::name)}++ if -f and grep { /\#!\s*\/usr\/bin\/perl/ } `cat $_`; } find (\&fic_perl,$ARGV[0]); foreach (sort keys %perl_script){ print "$_ => $perl_script{$_}\n"; } __END__Le résultat
lami20j@debian:~/trash$ perl exo_tematek2.pl /home/lami20j/bin/my_perl_script/ /home/lami20j/bin/my_perl_script => 114 /home/lami20j/bin/my_perl_script/Classe => 3 /home/lami20j/bin/my_perl_script/ccm_perl => 27 /home/lami20j/bin/my_perl_script/exo_daemon => 8 /home/lami20j/bin/my_perl_script/perl-en-action.src => 139 lami20j@debian:~/trash$ perl exo_tematek2.pl ../bin/my_perl_script/ ../bin/my_perl_script => 114 ../bin/my_perl_script/Classe => 3 ../bin/my_perl_script/ccm_perl => 27 ../bin/my_perl_script/exo_daemon => 8 ../bin/my_perl_script/perl-en-action.src => 139
tematek
Messages postés
5
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2007
1 févr. 2007 à 05:21
1 févr. 2007 à 05:21
Merci beaucoup, lami, je te reparle sous peu, merci encore.