poopie
Goto Top

Wort aus Datei herausfiltern von x bis y

Hallo,
ich würde gerne ein Wort aus einer Textdatei herausfiltern und in eine neue Datei speichern.
Die datei enthälter unter anderen folgendes
<option selected="selected">MEIN TEXT</option>
Und MEIN TEXT würde ich gerne abspeichern.

Meine Frage ist ob das machbar ist und wenn ja, wie?

Vielen Dank für's lesen. und evtl. antworten

Content-ID: 115733

Url: https://administrator.de/contentid/115733

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

MKzero
MKzero 11.05.2009 um 10:37:10 Uhr
Goto Top
Schon mal über RegEx nachgedacht? Damit lässt sich das recht einfach machen und wenn du damit nicht so firm bist gibts sogar Online-Generatoren ;)
Cubic83
Cubic83 11.05.2009 um 11:14:53 Uhr
Goto Top
Du musst den Beitrag nicht jeden Tag erneut schreiben:

Wort aus Datei herausfiltern von Zeichen x bis y
poopie
poopie 11.05.2009 um 11:27:07 Uhr
Goto Top
@MKzero
Dann guck ich mal ob ich einen Online-Generator finde und probier es mal aus.

@Cubic83
Ich hatte den Beitrag schonmal im Batch Bereich gepostet.
Aber damit ist es wohl nicht mahcbar.
Also hab ich dort auch geschreiben das dort zugemacht werden kann.
MKzero
MKzero 11.05.2009 um 11:32:35 Uhr
Goto Top
Hier mal der den ich meistens verwende:

http://www.txt2re.com/

auf den ersten Blick etwas kompliziert aber ansonsten seehr nützlich
poopie
poopie 11.05.2009 um 12:10:35 Uhr
Goto Top
Ich hab mir das was zusammengebastelt, was noch nicht so recht funktionieren will.

open (FILEHANDLE,"<datei.txt");
my $string = do { local $/; <FILEHANDLE> };
my $found;
$_ = '$string';
if( /\>{1}(.*?)\<{1}/ ) { $found = $1; }
open (out,">test.txt");
print out $found;
dog
dog 11.05.2009 um 13:54:07 Uhr
Goto Top
Wenn das eine echte XML-Datei ist kannst du es aufgeben, da mit RegEx rumzubasteln.
Da steckst du ganz schnell in einer Sackgasse.
Du brauchst einen "echten" XML-Parser.

http://lmgtfy.com/?q=perl+parse+xml

Grüße

Max
poopie
poopie 11.05.2009 um 22:31:18 Uhr
Goto Top
Wenn ich das wie folgt mache klappte es teilweise

so funktioniert es

my $found;
$_ = '<option selected="selected">MEIN TEXT</option>';
if( /\>{1}(.*?)\<{1}/ ) { $found = $1; }
open (out,">test.txt");
print out $found;


so leider nicht, doch warum nicht?

open (FILEHANDLE,"<datei.txt");
my $string = do { local $/; <FILEHANDLE> };
my $found;
$_ = '$string';
if( /\>{1}(.*?)\<{1}/ ) { $found = $1; }
open (out,">test.txt");
print out $found;