Februar 2011 Archive

File::Find::Duplicates von Tony Bowden durchsucht Verzeichnisse nach mehrfach vorhandenen Dateien.

Vorgehensweise

Zunächst erstellt File::Find::Duplicates Listen von Dateien identischer Größe.

Nur für Dateien der selben Größe wird eine MD5 Prüfsumme erstellt.

Dateien gelten als identisch, wenn sowohl Größe als auch MD5-Prüfsumme übereinstimmen.

Diese Vorgehensweise erzielt eine hohe Geschwindigkeit und nimmt dafür eine sehr geringe Wahrscheinlichkeit für "False Positives" in Kauf.

Beispiel

Dieses einfache Beispielprogramm nimmt eine Liste von Verzeichnissen als Kommandozeilenargumente entgegen, durchsucht diese rekursiv und gibt die gefunden Duplikate (Name,Größe, MD5) aus.

find_duplicate_files liefert im Erfolgsfall eine Liste von Objekten zurück, welche die Methoden size(), md5() und files() zur Verfügung stellen.

Im Misserfolgsfall (keine Duplikate) wird eine leere Liste zurückgegeben.

#!/usr/bin/perl
use strict;
use warnings;

use File::Find::Duplicates;

my @dirs = @ARGV;

# Basic Sanity Check
usage() unless scalar @ARGV > 1;

my @dupesets = find_duplicate_files(@dirs);

foreach my $dupeset (@dupesets) {
	print "Duplicate files: ", join(", ", @{ $dupeset->files } ), "\n";
        print "MD5:  ", $dupeset->md5, "\n";
        print "Size: ", $dupeset->size, " Bytes\n";
	print "\n";
}

sub usage {
    warn "Usage: $0 DIR1 DIR2\n";
    exit;
}

Das Programm erzeugt z.B. folgende Ausgabe:

perl basic.pl . /tmp/
Duplicate files: ./basic.pl, /tmp/basic.pl
MD5:  9bc2302a67edcd34e3f3cd44f6d5284b
Size: 465 Bytes

Siehe auch

Foo-Magazin-Titel

Vor ein paar Tagen ist die neue, 17. Ausgabe des Perl-Magazins $foo erschienen.

Inhalt der 17. Ausgabe:

JMX4Perl

Um auf Java EE Management Server Interfaces mit zugreifen zu können, gibt es das Modul jmx4perl. Das Modul setzt einen Agentenbasiertern Ansatz um. Dr. Roland Huß berichtet in diesem Artikel, wie man das Modul in eigenen Programmen einsetzen kann.

Perl und SVG

SVG ist vielleicht nicht die Neuigkeit schlechthin, aber es ist immer wieder sehr nützlich und gut. Dieser Artikel zeigt, wie mit Perl und verschiedenen Modulen - auch unter Perl 6 - SVG-Graphiken erstellt und verändert werden können.

OTRS-Community-Meetings

Die Community spielt bei der Software OTRS, die komplett in Perl geschrieben ist, eine immer wichtigere Rolle. Alexander Halle berichtet vom ersten OTRS Community Meeting und lädt zum zweiten Treffen ein.

In HTML5 eintauchen mit WebSockets und Perl

Die nächste Generation von HTML steht vor der Tür. Welche Möglichkeiten WebSockets bieten und wie man solche WebSockets mit Perl benutzen kann, beschreibt Viacheslav Tykhanovskyi in seinem Artikel.

Was ist neu in Perl 5.14

Im April wird es das nächste stabile Release von Perl geben - Perl 5.14. Seit Perl 5.12.x hat sich wieder einiges getan. Die wichtigsten und spannendsten Änderungen werden in diesem Artikel gezeigt.

WxPerl Tutorial VI - Menüs, Toolbars, ...

Seit Jahrzehnten verstehen Entwickler unter Applikationen Programme für Endanwender mit graphischer Oberfläche. Diese Folge widmet sich den Teilen, die bisher dazu fehlten: Menü, Werkzeugleiste, Statuszeilen sowie Tastatur und Mauseingaben.

Moose Tutorial III - Vererbung

Nachdem in den letzten beiden Ausgaben die Themen "Attribute" und "Methoden" behandelt wurden, ist in dieser Ausgabe das Thema "Vererbung" an der Reihe. In der nächsten Ausgabe werden dann "Rollen" besprochen. Einige Programmierer bevorzugen "Rollen" gegenüber der "Vererbung". Beides hat seine Daseinsberechtigung.

Rezension "Effective Perl Programming"

Thomas Kappler hat das Buch "Effective Perl Programming" gelesen und gibt einen Einblick in das Buch.

Rezension Bücher zur IT-Geschichte

Gleich über zwei Bücher berichtet Herbert Breunung: "Coding for Fun" und "Computergeschichte(n)-nicht nur für Geeks", die beide im Galileo-Verlag erschienen sind.

HowTo: Parallel::Iterator

In diesem Artikel zeigt Thomas Fahle, wie man mit Parallel::Iterator mehrere Aufgaben parallel erledigen kann.

Verschiedenes

Auch in dieser Ausgabe gibt es wieder die Neuvorstellung von 6 CPAN-Modulen, Neues von der TPF und Termine

Siehe auch:

Über dieses Archiv

Diese Seite enthält alle Einträge von Perl HowTo von neu nach alt.

Januar 2011 ist das vorherige Archiv.

März 2011 ist das nächste Archiv.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.