Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 14. Nov 2018 10:28

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Regulärer Ausdruck in Perl
BeitragVerfasst: 24. Aug 2000 21:21 
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


Nach oben
   
 Betreff des Beitrags: Re: Regulärer Ausdruck in Perl
BeitragVerfasst: 25. Aug 2000 8:49 
Easy, allerdings weiss ich's nur in sed oder awk, perl kann ich (noch?) nicht. In sed wäre es<pre>sed -n '/isdn_tty: call from/s/.*from \([0-9][0-9]*\) ->.*/\1/p' </pre>, 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.


Nach oben
   
 Betreff des Beitrags: Re: Regulärer Ausdruck in Perl
BeitragVerfasst: 27. Aug 2000 16:46 
Offline
Benutzeravatar

Registriert: 19. Mai 2000 19:36
Beiträge: 529
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


Nach oben
   
 Betreff des Beitrags: Re: Regulärer Ausdruck in Perl
BeitragVerfasst: 28. Aug 2000 22:01 
Ich danke euch beiden!

Felix


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de