chill0r55555
Mitglied
Hallo,
ich möchte gerne eine Datei durchsuchen, die folgendes Schema hat:
Nun fehlt ja in der letzten Zeile das "XXX". Also habe ich mir einen Regulären Ausdruck gebastelt, der die Datei so durchsuchen soll, dass wenn zwischen dem ersten und zweiten Tabulator nichts steht die Zeile ausgegeben werden soll. Der Ausdruck funktioniert aber nur, wenn die letzte Zeile so aussieht:
Sieht sie so aus geht es nicht:
Hier ist mein Skript. Ich weiß leider nichtmehr weiter. Kenn mich auch nicht richtig gut aus mit regulären Ausdrücken. Befasse mich erst seit kurzem damit.
MfG
ich möchte gerne eine Datei durchsuchen, die folgendes Schema hat:
Code:
ABC 123<TAB>XXX<TAB>YYY<TAB>ZZZ<TAB>
ABC 456<TAB>XXX<TAB>YYY<TAB>ZZZ<TAB>
ABC 789<TAB><TAB>YYY<TAB>ZZZ<TAB>
Nun fehlt ja in der letzten Zeile das "XXX". Also habe ich mir einen Regulären Ausdruck gebastelt, der die Datei so durchsuchen soll, dass wenn zwischen dem ersten und zweiten Tabulator nichts steht die Zeile ausgegeben werden soll. Der Ausdruck funktioniert aber nur, wenn die letzte Zeile so aussieht:
Code:
ABC 789<TAB><TAB><TAB><TAB>
Sieht sie so aus geht es nicht:
Code:
ABC 789<TAB><TAB>YYY<TAB>ZZZ<TAB>
Hier ist mein Skript. Ich weiß leider nichtmehr weiter. Kenn mich auch nicht richtig gut aus mit regulären Ausdrücken. Befasse mich erst seit kurzem damit.
Code:
use strict;
my $kommentar = '--';
my $zeile=1;
my $error=0;
open ($datei, '<', 'datei.txt') or die "datei.txt was not found!\n";
while(<$datei>)
{
chomp;
if($_ !~ /^.* .*\b\t.*\b\t.*/) {
print "[$zeile] ".$_."\n";
$error=1;
}
$zeile++;
}
close $datei;
if ($error==0){
print "no errors found.\n";
}
MfG