#!/usr/bin/perl -w

# Aufruf: df.pl  EINGABEVERZEICHNIS  >STDOUT
# ------------------------------------------
# Gibt fuer alle Token in den Dateien im Eingabeverzeichnis den df-Wert aus.
# Die Eingabedateien sollten tokenisiert sein!
# Peter Kolb, 9.5.2007

# Eingabeverzeichis einlesen
opendir(DIR, "$ARGV[0]") or die "Konnte Verzeichnis \"$ARGV[0]\" nicht oeffnen!\n";
@dir = readdir(DIR);
closedir(DIR);

# fuer alle Dateien im Eingabeverzeichnis
foreach $datei ( @dir ){
    $pfad = $ARGV[0] . "/" . $datei;
    next if ( -d $pfad ); # Verzeichnisse auslassen
    open(EIN, "<$pfad") or die "Konnte $pfad nicht oeffnen!\n";
    %TEMP = ();  # temporaeres Hash loeschen
    # Datei durchlaufen und alle Token in temporaerem Hash speichern
    while(<EIN>){
	@zeile = split;
	foreach $token ( @zeile ){
	    $TEMP{$token}++;
	}
    }
    close(EIN);
    # temporaeres Hash nach %DF uebertragen
    foreach $token ( keys %TEMP ){
	$DF{$token}++;
    }
}

# %DF als Liste (1 Term mit df-Wert pro Zeile) ausgeben
foreach $token ( sort keys %DF ){
    print STDOUT "$token $DF{$token}\n";
}

