1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#!/usr/bin/perl -w
use strict;
$^I = "";
die("Il faut spcifier un argument\n") if (! $ARGV[0]);
my $dir = $ARGV[0]; #plus court
die("$dir n'est pas un rpertoire\n") if ( ! -d $dir );
die("$dir n'est pas accessible en lecture\n") if ( ! (-r $dir) );
&fonc_dir($dir);
sub fonc_dir
{
die("La fonction rcursive a t appel sans argument") if (not @_);
my $local_dir = $_[0];
die("$local_dir : $!\n") if ( ! ( (-d $local_dir) && (-r $local_dir) ) );
opendir(LOCAL_DIR,$local_dir) || die("opendir a chou : $!\n");
my @dirs;
my $have_html;
my @temp;
@temp = readdir(LOCAL_DIR);
closedir(LOCAL_DIR);
# @dirs va contenir la liste des sous rpertoires de $local_dir
@dirs = grep {(! /^\./) && (-d "$local_dir/$_")} @temp;
$have_html = grep { (-f "$local_dir/$_") && (/.*\.html/) } @temp;
my $next_dir;
foreach $next_dir (@dirs)
{
$next_dir = "$local_dir/$next_dir";
# rcursivit
&fonc_dir($next_dir);
}
return if ( ! $have_html );
# dbut du traitement
my $deja = 0;
my @ARG;
@ARG = `file $local_dir/*.html | grep -v HTML`;
map {s/^\s*(.*?)\:.*$/$1/} @ARG;
map chomp,@ARG;
my $fichier;
foreach $fichier (@ARG)
{
@ARGV = $fichier;
print("$fichier\n");
$deja = 0;
while (<>)
{
print,next if ($deja == 1);
s/^\s*//;
next if ( $_ eq "" );
$deja = 1;
print;
}
}
}
|