Sed Verständnisproblem
Hallo,
ich habe ein Problem mit sed. Ich versuche aus Zeichenketten Leerzeichen
zu entfernen, die sich nur zwischen kleinen Buchstaben bzw. vor
Whitespace ein Großbuchstabe und hinter ein Kleinbuchstabe.
Z.B.
"Bad Hers feld" => Bad Hersfeld
"B ad Hers feld" => Bad Hersfeld
usw.
dafür habe ich folgende Expressions:
sed -e 's/\([a-z]\)\W*\([a-z]\)/\1\2/g' \
-e 's/\([A-Z]\)\W*\([a-z]\)/\1\2/g'
und das funktioniert leider sehr eigenartig.
z.B. (zweite expression mal weggelassen, da egal)
echo "Bad Hers feld" | sed -e
's/\([a-z]\)\W*\([a-z]\)/\1\2/g' => Bad Hersfeld
^^ funktioniert wie erwartet.
echo "Bad Neu brandenburg" | sed -e
's/\([a-z]\)\W*\([a-z]\)/\1\2/g' => Bad Neu brandenburg
^^ funktioniert nicht mit den zwei Spaces.
echo "Bad Neus brandenburg" | sed -e
's/\([a-z]\)\W*\([a-z]\)/\1\2/g' => Bad Neusbrandenburg
^^ funktioniert eigenartiger Weise, obwohl auch zwei Spaces und nur ein
's' an Neu angehangen...
da ist doch irgendwie der Wurm drin?!?
Jemand eine Idee?
--
Markus Schulz
This is Linux Land-
In silent nights you can hear the windows machines rebooting
Reply to: