#!/usr/bin/perl $cmd=q/find * -noleaf -maxdepth 0 -wholename Backup -prune -o -wholename en -prune -o -type d -exec printf '%s:' {} + /; #print $cmd; $logf=q/*\/[0-9][0-9][01][0-9][0-3][0-9]a.log/; open(INP,$cmd . "2>/dev/null |") || die "can't open " . $cmd . ": $!"; $list=; close(INP); #print "list=" . $list ."\n"; foreach $dir (split(":",$list)) { chomp $dir; if (length($dir) > 1) { print "Check \"" . $dir . "\"\n"; $files=$dir . "/" . $logf; $cmd="grep ^In.reply.to: " . $files . " 2>/dev/null | cut -d \" \" -f 4 | sort -nu |"; open(INPB,$cmd) || die "can't open " . $cmd . ": $!"; while () { chomp; $id=$_; $cmd="grep '[\$\]\@MID\@[\$\]:.$id\$' $files |"; open(INPC,$cmd) || die "can't open " . $cmd . ": $!"; $c=0; while () {$c++}; close(INPC); if ($c != 1) { print "### error: reference to entry $id, that exists $c times. Reference is:\n"; $cmd="grep -C 3 '^In.reply.to:.$id\$' $files |"; #print $cmd; open(INPD,$cmd) || die "can't open " . $cmd . ": $!"; while () { print "### ".$_; } close(INPD); } } close(INPB); } }