perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 17
Click for quality!




12.02.2012 / 03:34

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragnur grepergebnis in neuer datei ausgeben
Seitenanfang
Hallo zusammen,

ich frage mich ob es möglich ist und wenn ja wie,
wenn ich nur die gematchten Begriffe der Zeilen einer Datei in neuer Datei ausgeben möchte?

BSP:

JUN 23 wichtig 06:23:44 unwichtig <Emailadresse> Server blabalabalabaal

dabei handelt es sich um eine Zeile.
die neue Ausgabe soll dann wie folgt aussehen:

JUN 23 06:23:44 <Emailadresse>

Geht das überhaupt?
Wäre für Antworten mit Lösungsvorschlägen sehr dankbar, steh nämlich in punkto ziemlich auf dem Schlauch.

Danke, Gruss

Datum: 07.03.2007-17:19

Beitragre: nur grepergebnis in neuer datei ausgeben
Seitenanfang
Hallo!

Als erstes solltest du dir einen RegExp überlegen, der die benötigten Teile aus einer Zeile rausoperiert.
Für ein ganzes Array solcher Zeilen wendest du diesen dann einfach per for-Schleife oder mit "map" an. Das Ergebnisarray in die Datei schreiben - fertsch.

Grüße, Skrilax

Datum: 07.03.2007-17:48

Beitragre: nur grepergebnis in neuer datei ausgeben
Seitenanfang
Halli hallo,

use strict;
use warnings;
use Mail::RFC822::Address;

# wie leihen uns die Regex um die Mailadresse zu verifizieren
my $mail_regex = Mail::RFC822::Address::make_rfc822re;

# der Teststring
my $string = 'JUN 23 wichtig 06:23:44 unwichtig <email@adresse.test> Server blabalabalabaal';

# Filterung der gewünschten Daten
my ($month, $day, $time, $email) =
($string =~ /^(\w\w\w)\s+(\d+)\s+.+?(\d\d:\d\d:\d\d)\s+.+\s+(<$mail_regex>)\s+/so);

print "$month $day $time $email\n";

Bau eine Schleife drum herum, noch ein "next" hinzu, falls nicht alle Hits treffen, pass die Regex an deine Bedingungen an und dann sollte das funktionieren.

Gruss,
bloonix

Datum: 08.03.2007-15:33

-






-
-