Suche Befehl der Zahl aus einer Zeile ausgibt

Hallo,

ich suche einen speziellen Befehl, der mir aus einer Zeile nur die Zahl(en) zurückgibt für ein Shell Skript.

Beispiel :

Am Rissener Bahnhof 1,Hamburg

Daraus will ich nur die Hausnummer haben und alleine in eine andere Zeile in einer Textdatei schreiben.

Kennt jemand einen Befehl der nur die Zahl aus der Zeile oben auslesen könnte ? Kann cut nicht benutzen da der Strassenname unterschiedlich lang sein kann.

Hallo,

ich suche einen speziellen Befehl, der mir aus einer Zeile nur
die Zahl(en) zurückgibt für ein Shell Skript.

Beispiel :

Am Rissener Bahnhof 1,Hamburg

Daraus will ich nur die Hausnummer haben und alleine in eine
andere Zeile in einer Textdatei schreiben.

Die erste Zahl:

 echo "Am Rissener Bahnhof1,Hamburg2" | perl -ne 'print /\d+/'

Alle Zahlen:

 echo "Am Rissener Bahnhof1,Hamburg2" | perl -ne 'print /\d+/g'

Grüße

CMБ

Kennt jemand einen Befehl der nur die Zahl aus der Zeile oben
auslesen könnte ? Kann cut nicht benutzen da der Strassenname
unterschiedlich lang sein kann.

cat | egrep „[0-9]“|sed -e „s/regex//g“

regex sollte eine regular expression sein die alles ausser CR und Zahlen matcht. Sorry aber da bin ich grad bissl machtlos, sollte aber jemand anderes wissen :wink:

Hallo,

ich suche einen speziellen Befehl, der mir aus einer Zeile nur
die Zahl(en) zurückgibt für ein Shell Skript.

Am Rissener Bahnhof 1,Hamburg

Alle Zahlen, der würde aber auch noch die Postleitzahl ausgeben (in separater Zeile):

echo "Am Rissener Bahnhof 1,Hamburg" | egrep -o "[0-9]+"

Wenn dann noch (bei der Hausnummer) ein Buchstabe hinten stehen könnte:

echo "Am Rissener Bahnhof 1a,Hamburg" | egrep -o "[0-9]+[a-z]?"

Mit sed erhält man nur die erste Zahl:

echo "Am Rissener Bahnhof 1a,12345Hamburg" | sed "s/^[^0-9]\*\([0-9]\+\).\*$/\1/"

Gruß
Diether

Hi,

und nachdem wir die Kanonen und sonstigen schweren Geschuetze durch haben, werfe ich noch ein Leichtgewicht in die Runde:

Am Rissener Bahnhof 1,Hamburg

 $ echo "Am Rissener Bahnhof 1,Hamburg" |tr -cd '0-9\n'

Gruss vom Frank.