Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Adressen filtern spezieller Fall



tibrandt
23-05-2007, 15:43
Hallo, vielleicht kann mir jemand helfen:

Ich habe Adressenlisten in der Art

Herr Musterman
Musterstraßet25
53262 Musterstadt
.
Herr...
.

In der Straßenbezeichnung habe ich vor der Hausnummer immer ein kleines "t" drinne.

Wie bekomme ich das mit einem Bash-Skript sauber raus.

Der Straßenname kann auch die Form habe:

Muster Str.t1
MusterStr.t44
Muster Landstraße t45

Das kleine "t" steht immer vor der Hausnummer.

Danke für Eure Hilfe!

MfG
tibrandt

anda_skoa
23-05-2007, 17:50
Raus im Sinne von durch ein Leerzeichen ersetzen?



sed -e "s#t\([0-9]\+\)\$# \1#g"


t gefolgt von mindestem einen aber auch mehreren Ziffern am Ende einer Zeile

Ciao,
_

jan61
28-05-2007, 22:27
Raus im Sinne von durch ein Leerzeichen ersetzen?



sed -e "s#t\([0-9]\+\)\$# \1#g"


t gefolgt von mindestem einen aber auch mehreren Ziffern am Ende einer Zeile

Ciao,
_

Nur eine kleine Bemerkung zum sed: Ich würde (wenn ich nicht gerade eine Shell-Variable im sed benutze) immer mit ' statt " quoten - so hinderst Du die Shell daran, alles was ein $ vornweg hat interpretieren zu wollen. Spart nen \ und allgemein eine Menge Rätselraten. Das #g am Ende ist in diesem Fall überflüssig - es gibt immer nur einen Ausdruck, der bis zum Zeilenende matcht. Ähm - und was soll die -e Option hier?

Hier noch eine Version für Leute, die wie ich in "Musterstraße 25a" wohnen:

sed -r 's/t([0-9]+[a-zA-Z]?)$/ \1/'

Es gibt noch ein paar andere Besonderheiten in Adressen - mein Bruder wohnt z. B. in "Straße 47/11" - aber dann wäre zumindest für mich die Zeit reif für ein kleines Perl-Script - lieber ein paar Zeilen mehr als reguläre Ausdrücke, die kein Mensch mehr versteht - dann lieber ein Programm, das niemand mehr versteht ;-)

Jan