Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Regulärer Ausdruck in Perl

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Felix Gertz
Gast





BeitragVerfasst am: 24. Aug 2000 21:21   Titel: Regulärer Ausdruck in Perl

Tach!

Ich habe diese Zeile hier:

Aug 16 13:10:18 fgs kernel: isdn_tty: call from 4345023984 -> 341453 ignored

Nun möchte ich gerne dir Nummer 4345023984 herrausbekommen.

Man müsste ja eigentlich nur alles vor "from" wegschnipseln und alles hinter "->".
Und dann nochmal "from" und "->" selber.

Aber wie macht man das?

Hat einer ne Idee?

Wäre sehr dankbar.

Grüsse

Felix
 

Jochen
Gast





BeitragVerfasst am: 25. Aug 2000 8:49   Titel: Re: Regulärer Ausdruck in Perl

Easy, allerdings weiss ich's nur in sed oder awk, perl kann ich (noch?) nicht. In sed wäre es
sed -n '/isdn_tty: call from/s/.*from \([0-9][0-9]*\) ->.*/\1/p' 
, die Eingabezeile würde sed kann von stdin lesen. Mit "/isdn_tty: call from/" werden nur Eingabezeilen bearbeitet, die auch passen. "s" steht für "substitute", also Suchen und Ersetzen. "/.*from \([0-9][0-9]*\) ->.*/" ersetzt die ganze Zeile, und zwar durch "\1", nämlich die Zeichenkette, die im RE durch \(...\) eingeklammert war (die Nummer). "/p" beendet das Kommando und gibt an, dass diese Zeile (in der bearbeiteten Form) auszugeben ist. Das muss angegeben werden, weil vorher durch die Option -n beim Aufruf die Default-Ausgabe aller Zeilen unterdrückt wurde.

Ich hoffe, der RA ist Dir klar. Der sollte sich nämlich problemlos nach perl "portieren" lassen. Vielleicht kann Dir da ja auch ein perlmeister hier helfen.
 

killerhippy



Anmeldungsdatum: 19.05.2000
Beiträge: 529

BeitragVerfasst am: 27. Aug 2000 16:46   Titel: Re: Regulärer Ausdruck in Perl

schnulliscript:

---cut-here---
#! /usr/bin/perl -w

########################
# Variablenvereinbarung#
########################

my $ng;
my $eg;

#########################
# Definition des Strings#
#########################

$ng="Aug 16 13:10:18 fgs kernel: isdn_tty: call from 4345023984 -> 341453 ignored";

##########################################
# Die Telefonnummer treffen und speichern#
##########################################

################################
# [] definiert eine Klasse #
# \d trifft digits, d.h. Zahlen#
# + mindestens einmal treffen #
# () Treffer merken #
################################
$ng =~ /call from ([\d]+)/;


##################################################
# die gespeicherte Nummer einer Variable zuweisen#
##################################################

$eg = $1;

print "$eg
";

exit;
---cut-ends---

cu
Sascha
_________________
Es gibt keine dumme Fragen!

Killerhippy
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Felix
Gast





BeitragVerfasst am: 28. Aug 2000 22:01   Titel: Re: Regulärer Ausdruck in Perl

Ich danke euch beiden!

Felix
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy