grep nummer mit bindestrich

S

SR166

Grünschnabel
Hallo ich habe ein script mit dem ich immer die aktuellen call by call nummern auf einer homepage suche
Bisher waren die nummern immer normal, also 01010 oder so.
diese hab ich dann mit

grep -Eo '[[:digit:]]{4,8}'

ausgelesen

Nun ist aber eine Nummer im Format 0900-50 dabei. Das Ergebnis mit grep ist dann aber nur 0900

wie kann ich diese nummer nun richtig auslesen und den Bindestrich entfernen?

Vielen Dank im Voraus.
Frank
 
Hi,

du solltest fuer code immer code tags verwenden, sonst passiert so ein smiley Mist... Und ich wunder mich die ganze Zeit wieso du code postest der nicht funktioniert. ;p

Also, wie du das mit den Bindestrichen machst, haengt davon ab was denn alles genau moeglich ist. Das hier waere z.B. eine Moeglichkeit:
Code:
grep -Eo '[[:digit:]]{4,8}-?[[:digit:]]*' numbers.txt | sed s/-//g
Ich denke was da passiert ist klar, nach deinem urspruenglichen Muster wird auf einen moeglichen Bindestricht getestet, und dann duerfen nochmal beliebig viele Nummern kommen. Das ist wahrscheinlich noch nicht ganz das was du suchst, aber das duerfte ja recht leicht anzupassen sein

Der sed Ausdruck sorgt dafuer dass die Bindestriche entfernt werden.

Edit:
Ich habe grade gesehen, dass meine erste Erklaerung fehlerhaft war, habe sie jetzt korrigiert. Wahrscheinlich macht es mehr Sinn, die Anzahl der hinteren Zahlen zu begrenzen, ansonsten erlaubst du beliebig lange Zahlenfolgen, was du ja scheinbar nicht willst.

mfg,
bytepool
 
Zuletzt bearbeitet:
Hi bytepool,
danke für Deine schnelle Antwort.

Also das Problem ist, dass die Nummer entweder
so: 010200
oder
so: 01020
oder
so 0900-50 erscheinen kann.

ich müsste also mehrere formate auslesen können und hinterher per sed den bindestrich entfernen.
Wie kann ich das bewerkstelligen?

Danke

Frank
 
Hi,
Wie kann ich das bewerkstelligen?
hatte ich das nicht schon geschrieben? Wenn das "oder-Zeichen" das Problem ist, das ist die Pipe |. Z.B.
Code:
$ echo abcd | egrep -o '1|abc'
abc
Sucht nach 1 oder abc.

mfg,
bytepool
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Newbie sucht Hilfe: Zahl aus Datei mit grep/cut/sed lesen und schreiben?

Problem mit Apache2 + MySQL Server

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Server-Monitoring mit RRDTool

Zurück
Oben