Mailinglist Archive: opensuse-de (1185 mails)

< Previous Next >
Re: Iconv - locale - Verst ändnisproblem
  • From: Christian Brabandt <cblists@xxxxxxxxxx>
  • Date: Thu, 16 Sep 2010 22:59:07 +0200
  • Message-id: <20100916205907.GM24936@xxxxxxxxxx>
Hi Al!

On Do, 16 Sep 2010, Al Bogner wrote:

On Do, 16 Sep 2010, Al Bogner wrote:
100%ig ist es leider nicht, aber für mich ausreichend.

zB wird ß nicht in SS gewandelt.

Ah richtig. Mal als Bug eintüten? Rückwandeln wird aber nicht mehr
funktionieren.

Kennst du andersrum auch eine Lösung mit der Bash bzw. sed, also

zB ÄFFCHEN nach aeffchen?

#v+
~$ printf "ÄFFCHEN\n" | iconv -t ascii//translit | sed -e 's/.*/\L&/'
affchen
#v-

Oder, da fällt mir noch was unportables mit bash 4 ein:
chrisbra@host:/tmp$ foo="ÄFFCHEN"
chrisbra@host:/tmp$ bar=$(printf "$foo\n" | iconv -t ascii//translit) && printf
"$bar\n"
AEFFCHEN
chrisbra@host:/tmp$ bar=${bar,,} && printf "$bar\n"
aeffchen
chrisbra@host:/tmp$ printf "$BASH_VERSION\n"
4.1.5(1)-release
#v-

Und zsh kennt den :l modifier:

#v+
chrisbra@host /tmp % foo="ÄFFCHEN"
chrisbra@host /tmp % bar=${foo:l}
chrisbra@host /tmp % printf "$bar\n"
äffchen
chrisbra@host /tmp % printf "$bar\n" | iconv -t ascii//translit
aeffchen
#v-

Wenn ich mir das so anschaue, ist zsh-Syntax doch einprägsamer.

Es soll also nur US-ASCII übrig bleiben und Sonderzeichen wie ä nach ae
transkribiert werden, eventuell auch nach nur nach affchen.

Wie ich gerade festelle, hängt auch das von der locale ab, wonach
transkribiert wird. In einer englischen locale wird nämlich aus ä auch a
während in einer deutschen locale ä zu ae wird.

Mir ist bekannt, dass man sich mit Perl da leichter tut, aber mit der
Bash kenne ich mich eben besser aus. Ich habe mir dafür was mit sed
gebastelt, das einzeln ersetzt.

*seufz*
Wem sagst du das. Ich nehme mir immer vor, mich mit Perl mehr zu
beschäftigen, wenn ich mit sed oder bash nicht weiter weiß. Dummerweise
geht fast alles auch mit Shell-Script in Kombination mit sed oder awk.
Nur für richtig komplexe Scripte nehme ich Perl.

regards,
Christian
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups