Am Do, 16 Sep 2010 22:59:07 CEST schrieb Christian Brabandt: Hallo Christian,
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.
Hoffentlich vergesse ich das nicht, ich werde das mal einige Zeit testen, was da vielleicht noch Probleme macht. Zeitweise kommen bei mir noch einige Sprachen vor, wie norwegisch, türkisch, russisch, etc.
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)
Ich verstehe nicht, warum hier \n notwendig ist.
&& printf "$bar\n" AEFFCHEN chrisbra@host:/tmp$ bar=${bar,,} && printf "$bar\n" aeffchen
Wow, heute gibt es für ein paar Dinge, die ich seit Jahren zu verbessern suche, eine Revolution. TITLE=`printf "„Χρώματα“" | sed -e "s/_/ /g;s/'/ /g;s/+/ /g;s/.*/\U&/"` printf "$TITLE\n" „ΧΡΏΜΑΤΑ“ TITLE2=$(printf "$TITLE\n" | iconv -t ascii//translit) printf "$TITLE2\n" ,,???????" Mache ich da was falsch, oder klappt das nicht? printf "$BASH_VERSION\n" 4.0.35(1)-release
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.
In einem Script ist mir das nicht so wichtig. Schaffst du mit der zsh mein griech. Beispiel?
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.
Super, mache ich bei meinen Ersetzungen genau so, ein griech. Χ sollte zu ch werden.
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.
Meine komplexen Scripte funktionieren mit der bash, sind aber nach vielen Ergänzungen und Änderungen über die Jahre nicht (mehr) schon codiert. Ich würde ja noch die Zeit investieren, das in Perl besser zu machen, aber vor dem Testen fürchte ich mich. Das Bash-Script funktioniert auch in ausgefallenen Situationen, da kann ich mich darauf verlassen. Neue Scripts sind am Anfang immer sehr kurz und werden erst nach Jahren komplexer und dann ist es für Perl schon wieder zu spät ;-) Die Zeit sich weiter zu entwickeln ist eben beschränkt und letztlich zählt wie lange man braucht um ein Ergebnis zu erreichen. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org