FrankS: Zeilen aller Dateien eines Verzeichnisses zaehlen

Beitrag lesen

Hallo Bakka!

Mein Vorschlag (getestet):

use File::Find;
@ARGV[0] = qw(.) unless @ARGV[0];
#File-Liste erstellen (incl. Verzeichnissen)
$ext=@ARGV[1];
find sub { push (@flist, $File::Find::name) }, @ARGV[0];
#alle Files/Verzeichnisse aus Liste bearbeiten
print "Bearbeitete Verzeichnisse:\n";
$files=0;
$dirs=0;
$anzahl=0;
foreach (@flist){
   if (($_ =~ /$ext/) and (-f $_)){
      $files ++;
      open(LESEN,"<$_")die"$!";
      @file=<LESEN>;
      close(LESEN);
      foreach (@file){
        $anzahl ++;
      }
   }elsif (-d $_) {
   #das hier ist nur ein Verzeichnis
      $dirs ++;
      print "$_\n";
   }
}
print "$anzahl Zeilen in $files Datei(en) und $dirs Verzeichniss(en)!\n";

Aufruf: perl.exe script.pl dir ext
"dir" ist das Verzeichnis in dem gesucht wird (incl. der darunter liegenden)
"ext" ist die ein Teil des Dateinamens. z.B. die extention

Gruß Frank