Hallo ich bins nochmal, ich nerve euch wahrscheinlich schon, aber das wollte ich noch wissen, ich will eine Datei öffnen, das mache ich damit
$quelle = $ARGV[0];
$x = $ARGV[0];
$x =~ s/(\w+).\w+/$1/;
$ziel = $x;
open ($INPUT,"
Hallo ich bins nochmal, ich nerve euch wahrscheinlich schon, aber das wollte ich noch wissen, ich will eine Datei öffnen, das mache ich damit
$quelle = $ARGV[0];
$x = $ARGV[0];
$x =~ s/(\w+).\w+/$1/;
$ziel = $x;
open ($INPUT,"
diese Datei will ich nach z.B. der Sachnummer durchsuchen und
nur die Nummer AATHD73141.087 (wie oben) ausgeben und zwar in
eine andere Textdatei!
Perl bietet vielfältigste Lösungsmöglichkeiten; eine ‚selbstbeschreibende‘ Methode, Zeilen aufzuteilen, bietet die Split-Funktion:
while () {
if ( $\_ =~ m/^\s.\*Sachnummer:/ ) {
($bezeichner, $sachnr) = split( /\t/, $\_ );
print OUTPUT $sachnr;
}
}
Mangels geeigneter Formatierung ist deinem Dateibeispiel nicht sicher zu entnehmen, ob hier einleitend bzw. trennend Leerzeichen, Tabulator oder garnix steht, entspr. musst du die \t und \s im Codeschnipsel möglicherweise noch anpassen.
HTH
Schorsch
Hallo
aber das wollte ich noch wissen, ich will eine Datei öffnen,
das mache ich damit
$quelle = $ARGV[0];
$x = $ARGV[0];
…
die Datei sieht so aus:
23.05.2007 13:11:11 UUT: MSA16_92 Start Test: T1_KENN.CBT
…
diese Datei will ich nach z.B. der Sachnummer durchsuchen und
nur die Nummer AATHD73141.087 (wie oben) ausgeben und zwar in
eine andere Textdatei!
Braucht man eigentlich kein „Programm“ in dem Sinne,
es reicht ein:
(Windows)
perl -lane "/Sachnummer/ and print $F[1]" datei.txt \> num.txt
(Unix)
perl -lane '/Sachnummer/ and print $F[1]' datei.txt \> num.txt
Grüße
CMБ