#!/usr/bin/perl -w use strict; use warnings; use POSIX; use utf8; use File::Find; my ($datei); my (@files); my ($txtdatein); my ($mumpitz); my ($inhalttxt); my ($files); my ($loesch); my @loesch; my ($alter); my ($kurzalter); my ($txtdatei); my @pfad = glob "*.txt"; my $dir= "/var/lib/testverzeichnis/k_loesch/k_transport/"; my $verzeichnis = "/var/lib/testverzeichnis/k_loesch"; my $mydate = &datum_zeit("D.M.J"); find(\&wanted,$dir) ; sub wanted { my $file = $File::Find::name; #schreibt alle echten Datein in @files push (@files,$file) if(-f $file); } opendir(DIR, $verzeichnis); #packt alle pfade die auf eine textdatei zeigen in @txtdatein my @txtdatein = grep{ $_ =~ /\.txt$/ }readdir(DIR); closedir DIR; foreach $txtdatein (@txtdatein) { #öffnet diese textdateien open (TXT,"<$txtdatein"); #und packt den inhalt in @alletxtdatein my @alletxtdatein = ; close (TXT); foreach $inhalttxt (@alletxtdatein) { open (INHALTOUT,">>inhalt_aller_txt_datein.txt"); #schreibt den Inhalt aller textdatein in eine textdatei print INHALTOUT "$inhalttxt"; close (INHALTOUT); } } open (INHALTIN,"; close (INHALTIN); my %h = map { $_ => 1 } @inhlattxt; #vergleicht beide arrays und löscht in @files alles was in @inhalttxt (inhalt aller txtdatein) schon steht @files = grep { ! exists $h{$_} } @files; open (ZWEITE,">>$mydate.txt"); #schreibt neuen inhalt in $mydate.txt (der Name dient nur der Übersichtlichkeit print ZWEITE "@files"; close (ZWEITE); foreach $txtdatei (@pfad) { $alter = -M "$txtdatei"; $kurzalter = sprintf "%.0f",$alter; if ($kurzalter > 14) #wenn die erstellte txtdatei älter als 14 tage ist { open (LOESCH,"<$txtdatei"); #wird der inhalt eingelesen @loesch = ; close (LOESCH); foreach $loesch (@loesch) { print "$loesch\n"; unlink "$loesch"; #und dann gelöscht } unlink ("$txtdatei"); } } ## Die sub ist nicht sooo wichtig sah nur schön aus mit dem datum!! sub datum_zeit { my $p=$_[0]; my %DATUM_ZEIT; my $timeparameter; my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time); $Monat+=1; $Jahrestag+=1; $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat; $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag; $Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden; $Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten; $Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden; $Jahr+=1900; $DATUM_ZEIT{'J'}=$Jahr; $DATUM_ZEIT{'M'}=$Monat; $DATUM_ZEIT{'D'}=$Monatstag; $DATUM_ZEIT{'h'}=$Stunden; $DATUM_ZEIT{'m'}=$Minuten; $DATUM_ZEIT{'s'}=$Sekunden; $DATUM_ZEIT{'T'}=$Wochentag; if ($p) { $p=~s/(J|M|D|h|m|s|T)/$DATUM_ZEIT{$1}/g, while ($p=~/J|M|D|h|m|s|T/); } else { $p=$Jahr.$Monat.$Monatstag.'_'.$Stunden.$Minuten.$ Sekunden; } return $p; } unlink ("inhalt_aller_txt_datein.txt");