Le but de ce TP est d'étudier la manipulation des fichiers en Perl.

L'élève curieux pourra également se reporter au TP analogue proposé l'année dernière par Antoine Miné.

Aide

On rappelle qu'un script script Perl est un fichier texte d'extension .pl, tel toto.pl, qui commence par une ligne précisant l'interpréteur:

#!/usr/bin/perl -W

et qui est rendu exécutable par la commande chmod +x toto.pl. Dans cet exemple, on a forcé l'option -W qui active tous les avertissements paranoïaques de Perl (voir perlrun(1)).

Liens utiles:

top

Exercice 1 - ls -l en Perl

  1. Écrire un script Perl qui affiche le contenu détaillé d'un répertoire passé en argument (i.e. simulant la fonction ls -l) en utilisant la fonction stat.


  2. Modifier votre script pour qu'il affiche les listes de fichiers comme un unique fichier (i.e. les trois fichiers fichier1.txt, fichier2.txt et fichier3.txt devront apparaître comme fichier[1-3].txt).


    (On demande uniquement la liste des fichiers pas les informations supplémentaires - i.e. fonction ls simple).

top

Exercice 2 - Renommer les fichiers

Écrire un script Perl qui renomme les fichiers d'un répertoire de manière à éviter les collisions dans un système de fichiers qui ne distingue pas les majuscules et les minuscules (comme HFS+ sur OS X).

top

Exercice 3 - Recherche de doublons

Écrire un script Perl qui recherche les fichiers en double dans un répertoire donné.

(cf. Exercice 2.3 du TP n°2) top

Exercice 4 - Nettoyage

LaTeX, créé par Leslie Lamport, est un système logiciel de composition de documents. À partir d'un fichier source fichier.tex, un fichier fichier.dvi est créé en exécutant latex fichier.tex.

Si dans un répertoire donné un fichier .dvi est antérieur au fichier .tex correspondant, il est vraissemblable que le premier ne pourra pas être reconstruit à partir du second.

Écrire un script Perl qui supprime (dans un répertoire passé en argument) les fichiers .dvi, .log et .aux uniquement si le fichier .dvi est antérieur au fichier .tex correspondant.

top