(PERL) Grenzen setzen klappt nicht!

yasukatakaya

Mitglied
Moinsen,
ich kriege es einfach nicht hin die Grenzen zu setzen, ich wollte das die Datei haupt.txt nach diesem Suchmuster durchsucht wird und wenn es jedesmal gefunden wird, wird dieser Absatz in eine neue Datei geschrieben, in diesem Fall wären es 2 dateien, die noch erzeugt werden und jede ist nach der Seriennummer benannt!
Doch mein Suchmuster, das in @mach0 hinterlegt ist durchläuft nicht Absatzweise (in dieser Datei (haupt.txt)) wären es 2 Absätze, es kopiert alles von DUT No und geht bis zum letzten End Sequence: SetIdleCurrent?!
Kann mir jemand weiterhelfen?

hier die Datei haupt.txt:
Code:
DUT No
HIER STEHT VIEL ZEUG
Measurement:7667000583
End Sequence: SetIdleCurrent
DUT No
HIER STEHT VIEL ZEUG
Measurement:8888000583
End Sequence: SetIdleCurrent

und mein kleines Prog:
Code:
#!bin\perl	

$quelle = $ARGV[0];
$x = $ARGV[0];
$x =~ s/(\w+)\.\w+/$1/;
$ziel = $x;

#open (INPUT,"<$quell_verzeichnis$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
open (INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
undef $/;
open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n";
$_ = <INPUT>; 
close (INPUT);

print OUTPUT "$_";

@mach0 = s/DUT No\s(.+?)End Sequence: SetIdleCurrent\s/gsm;

foreach (@mach0)
{
	($seriennummer)	= /Measurement:([0-9]{10})/;
	open (OUTPUT2,">$seriennummer.txt") or die "konnte $ziel nicht oeffnen,$!\n";
	
	#Anfang der Datei
	print OUTPUT2 "DUT No\n";
	
	print OUTPUT2 @mach0;
	
	#Ende der Datei
	print OUTPUT2 "End Sequence: SetIdleCurrent";
	close OUTPUT2;
}

print OUTPUT "\n";

close OUTPUT;

#~~~> END of Code
 

Neue Beiträge

Zurück