Ich verstehe nicht, warum folgendes (wie sonst schon) nicht funktioniert: ls -1 äffchen.jpg Ziel ist eine Variable zu erhalten in der sich "ÄFFCHEN" befindet. TITLE="„"`basename "$FILE" .jpg | \ sed -e "s/_/ /g" -e "s/'/ /g" -e "s/ / /g"`"“" # um Sonderzeichen in Großbuchstaben zu wandeln export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1 IMAGETITLE=" "`echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8`" " # es sollte von UTF8 nach 8859-1 gewandelt werden, #danach in Großbuchstaben und wieder zurück zu UTF8 # Das Script soll weiter in UTF8 laufen export LC_CTYPE=de_DE.UTF-8 export LANG=de_DE.UTF-8 iconv: ung�ltige Eingabe-Sequenz an der Stelle 0 Mache ich hingegen in einer neu geöffneten Shell direkt folgendes, dann passt es: TITLE="österreich" export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1 echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 \ | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8 ÖSTERREICH 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
On Thursday, September 16, 2010 19:11:11 Al Bogner wrote:
IMAGETITLE=" "`echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8`" "
warum so kompliziert? Du startest 4 Prozesse. Gut, Perl ist beim Start recht teuer, aber teurer als 4 Prozesse... Kaum. Außerdem verlierst Du Information, da nicht alle Zeichen in ISO_8859-1 dargestellt werden können. $ perl -CS -ne 'print uc' <<<'äö߀' ÄÖSS€ $ for i in äÄ öÄ üÜ ß§; do perl -CS -ne 'print uc' <<<"$i"; done ÄÄ ÖÄ ÜÜ SS§ $ x="[ $(perl -CS -ne 'print uc' <<<'äö߀') ]"; echo "|$x|" |[ ÄÖSS€ ]| Natürlich kannst Du statt stdin auch die Kommandozeile nutzen, um Deine Namen zu übergeben: $ perl -COA -le 'print uc "@ARGV"' ä ö ß € Ä Ö SS € Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- 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
Hi Torsten! On Do, 16 Sep 2010, Torsten Förtsch wrote:
On Thursday, September 16, 2010 19:11:11 Al Bogner wrote:
IMAGETITLE=" "`echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8`" "
warum so kompliziert? Du startest 4 Prozesse. Gut, Perl ist beim Start recht teuer, aber teurer als 4 Prozesse... Kaum.
Daher sed nehmen, wenn es geht ;) Mit freundlichen Grüßen Christian, der bisher zu viel in sed gemacht hat und daher Perl nicht so gut kennt. -- 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
Hi Al! On Do, 16 Sep 2010, Al Bogner wrote:
Ich verstehe nicht, warum folgendes (wie sonst schon) nicht funktioniert:
ls -1 äffchen.jpg
Was ist die Ausgangslocale? UTF-8?
Ziel ist eine Variable zu erhalten in der sich "ÄFFCHEN" befindet.
TITLE="„"`basename "$FILE" .jpg | \ sed -e "s/_/ /g" -e "s/'/ /g" -e "s/ / /g"`"“"
In $FILE steht äffchen.jpg? Das geht auch einfacher: #v+ chrisbra@r500vm:/tmp$ TITLE=`printf "„äffchen“" | sed -e "s/_/ /g;s/'/ /g;s/ \+/ /g;s/.*/\U&/"` chrisbra@r500vm:/tmp$ printf "$TITLE\n" „ÄFFCHEN“ #v- (geht nur mit GNU sed).
# um Sonderzeichen in Großbuchstaben zu wandeln export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1
Wozu? Du sagst hier, dass die shell allen Input als latin1 ansehen soll.
IMAGETITLE=" "`echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8`" "
Und hier verlangst Du, dass iconv vom UTF-8 nach latin1 wandelt. Dabei sieht die Shell bei $TITLE schon alles als latin1 Bitstrom an. Außerdem siehe oben, GNU sed kann selber wandeln.
# es sollte von UTF8 nach 8859-1 gewandelt werden, #danach in Großbuchstaben und wieder zurück zu UTF8
Warum erst von einer Kodierung in die andere wandeln?
# Das Script soll weiter in UTF8 laufen export LC_CTYPE=de_DE.UTF-8 export LANG=de_DE.UTF-8
iconv: ung�ltige Eingabe-Sequenz an der Stelle 0
Ja, weil „ und “ keine gültigen Kodierungen in latin1 sind. Davon ab, kann man iconv auch sagen, dass es ungültige Bytes übersetzen soll: #v+ chrisbra@host:/tmp$ a="„" chrisbra@host:/tmp$ printf "$a\n" „ chrisbra@host:/tmp$ export LANG=de_DE.iso8859-1//TRANSLIT chrisbra@host:/tmp$ printf "$a\n" |iconv -f UTF-8 -t iso8859-1//TRANSLIT ,, chrisbra@host:/tmp$ printf "$a\n" |iconv -f UTF-8 -t iso8859-1 iconv: illegal input sequence at position 0 #v-
Mache ich hingegen in einer neu geöffneten Shell direkt folgendes, dann passt es:
TITLE="österreich" export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1 echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 \ | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8 ÖSTERREICH
Klar, deine Anführungszeichen fehlen ;) regards, Christian -- 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
Am Do, 16 Sep 2010 19:46:04 CEST schrieb Christian Brabandt: Hi Christian,
On Do, 16 Sep 2010, Al Bogner wrote:
Ich verstehe nicht, warum folgendes (wie sonst schon) nicht funktioniert:
ls -1 äffchen.jpg
Was ist die Ausgangslocale? UTF-8?
ja (Standard OS 11.2)
Ziel ist eine Variable zu erhalten in der sich "ÄFFCHEN" befindet.
TITLE="„"`basename "$FILE" .jpg | \ sed -e "s/_/ /g" -e "s/'/ /g" -e "s/ / /g"`"“"
In $FILE steht äffchen.jpg?
ja, war aber nur ein simples Beispiel. Die Dateien verwenden auch span. Sonderzeichen, etc.
Das geht auch einfacher: #v+ chrisbra@r500vm:/tmp$ TITLE=`printf "„äffchen“" | sed -e "s/_/ /g;s/'/ /g;s/ \+/ /g;s/.*/\U&/"` chrisbra@r500vm:/tmp$ printf "$TITLE\n" „ÄFFCHEN“ #v- (geht nur mit GNU sed).
# um Sonderzeichen in Großbuchstaben zu wandeln export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1
Wozu? Du sagst hier, dass die shell allen Input als latin1 ansehen soll.
Damit tr in Großbuchstaben wandeln kann. Ich werde mir deinen Vorschlag anschauen, ob der überall passt.
IMAGETITLE=" "`echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8`" "
Und hier verlangst Du, dass iconv vom UTF-8 nach latin1 wandelt. Dabei sieht die Shell bei $TITLE schon alles als latin1 Bitstrom an.
Außerdem siehe oben, GNU sed kann selber wandeln.
wusste ich nicht.
# es sollte von UTF8 nach 8859-1 gewandelt werden, #danach in Großbuchstaben und wieder zurück zu UTF8
Warum erst von einer Kodierung in die andere wandeln?
Ich bin da so gewohnt, wenn ich griechische Zeichen nach groß wandle. ITLE=`printf "„Χρώματα“" | sed -e "s/_/ /g;s/'/ /g;s/ \+/ /g;s/.*/\U&/"` printf "$TITLE\n" „ΧΡΏΜΑΤΑ“ Cool, endlich dieses Gewürgs beim Wandeln in Großbuchstaben von UTF-8 weg. Vielen Dank! Als ich vor langer Zeit mein 1. Script mit dieser Problemtik erstellte, ergaben meine Recherchen keine bessere Lösung als mit iconv.
# Das Script soll weiter in UTF8 laufen export LC_CTYPE=de_DE.UTF-8 export LANG=de_DE.UTF-8
iconv: ung�ltige Eingabe-Sequenz an der Stelle 0
Ja, weil „ und “ keine gültigen Kodierungen in latin1 sind. Davon ab, kann man iconv auch sagen, dass es ungültige Bytes übersetzen soll: #v+ chrisbra@host:/tmp$ a="„" chrisbra@host:/tmp$ printf "$a\n" „ chrisbra@host:/tmp$ export LANG=de_DE.iso8859-1//TRANSLIT chrisbra@host:/tmp$ printf "$a\n" |iconv -f UTF-8 -t iso8859-1//TRANSLIT ,, chrisbra@host:/tmp$ printf "$a\n" |iconv -f UTF-8 -t iso8859-1 iconv: illegal input sequence at position 0 #v-
Mache ich hingegen in einer neu geöffneten Shell direkt folgendes, dann passt es:
TITLE="österreich" export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1 echo "$TITLE" | iconv -f UTF-8 -t ISO_8859-1 \ | tr '[:lower:]' '[:upper:]' | iconv -f ISO_8859-1 -t UTF-8 ÖSTERREICH
Klar, deine Anführungszeichen fehlen ;)
Stimmt, die habe ich ja zum Dateinamen hinzugefügt. 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
Hi Al! On Do, 16 Sep 2010, Al Bogner wrote:
Am Do, 16 Sep 2010 19:46:04 CEST schrieb Christian Brabandt:
On Do, 16 Sep 2010, Al Bogner wrote:
# um Sonderzeichen in Großbuchstaben zu wandeln export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1
Wozu? Du sagst hier, dass die shell allen Input als latin1 ansehen soll.
Damit tr in Großbuchstaben wandeln kann.
Wenn tr nicht mit UTF-8 klar kommt, solltest Du das als Bug reporten.
Cool, endlich dieses Gewürgs beim Wandeln in Großbuchstaben von UTF-8 weg. Vielen Dank! Als ich vor langer Zeit mein 1. Script mit dieser Problemtik erstellte, ergaben meine Recherchen keine bessere Lösung als mit iconv.
My pleasure.
Klar, deine Anführungszeichen fehlen ;)
Stimmt, die habe ich ja zum Dateinamen hinzugefügt.
;) regards, Christian -- 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
Am Do, 16 Sep 2010 21:22:46 CEST schrieb Christian Brabandt: Hallo Christian,
On Do, 16 Sep 2010, Al Bogner wrote:
Am Do, 16 Sep 2010 19:46:04 CEST schrieb Christian Brabandt:
On Do, 16 Sep 2010, Al Bogner wrote:
# um Sonderzeichen in Großbuchstaben zu wandeln export LC_CTYPE=de_DE.iso88591 export LANG=de_DE.ISO-8859-1
Wozu? Du sagst hier, dass die shell allen Input als latin1 ansehen soll.
Damit tr in Großbuchstaben wandeln kann.
Wenn tr nicht mit UTF-8 klar kommt, solltest Du das als Bug reporten.
Der Bug (oder Feature) ist alt.
Cool, endlich dieses Gewürgs beim Wandeln in Großbuchstaben von UTF-8 weg. Vielen Dank! Als ich vor langer Zeit mein 1. Script mit dieser Problemtik erstellte, ergaben meine Recherchen keine bessere Lösung als mit iconv.
My pleasure.
100%ig ist es leider nicht, aber für mich ausreichend. zB wird ß nicht in SS gewandelt. Kennst du andersrum auch eine Lösung mit der Bash bzw. sed, also zB ÄFFCHEN nach aeffchen? Es soll also nur US-ASCII übrig bleiben und Sonderzeichen wie ä nach ae transkribiert werden, eventuell auch nach nur nach affchen. 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. 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
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@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
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
Hi Al! On Fr, 17 Sep 2010, Al Bogner wrote:
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.
Weil sonst kein nachfolgender Zeilenumbruch ausgegeben wird. echo geht auch, ist aber nicht portabel nutzbar.
&& 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?
Nö, das klappt hier auch nicht. Möglicherweise ist für diese Buchstaben nicht definiert, wie sie zu transkribieren sind. Aber da kommen wir jetzt zu Details, mit denen ich mich nicht auskenne. Ich habe hier meist nur mit deutschen Umlauten zu tun. Du könntest evtl. mal die Entwickler fragen.
In einem Script ist mir das nicht so wichtig. Schaffst du mit der zsh mein griech. Beispiel?
iconv ist ja unabhängig von der Shell, insofern, nein.
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.
Ich würde einen Bug reporten. Dann weißt du wenigstens, ob du was falsch machst, oder ober das tatsächlich ein bug ist oder vielleicht auch ein Feature Request.
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.
eben. regards, Christian -- 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
Am Fr, 17 Sep 2010 12:34:54 CEST schrieb Christian Brabandt: Hallo Christian,
On Fr, 17 Sep 2010, Al Bogner wrote:
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.
Weil sonst kein nachfolgender Zeilenumbruch ausgegeben wird. echo geht auch, ist aber nicht portabel nutzbar.
Ja schon, aber brauche ich den Umbruch in einer Variable?
&& printf "$bar\n" AEFFCHEN chrisbra@host:/tmp$ bar=${bar,,} && printf "$bar\n" aeffchen
Hier hast du dann ja wieder \n + die Variable mit dem Umbruch.
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" ,,???????"
Ich würde einen Bug reporten. Dann weißt du wenigstens, ob du was falsch machst, oder ober das tatsächlich ein bug ist oder vielleicht auch ein Feature Request.
Werde ich bei Gelegenheit machen. 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
Hi Al! On Fr, 17 Sep 2010, Al Bogner wrote:
Ja schon, aber brauche ich den Umbruch in einer Variable?
äh nein.
Ich würde einen Bug reporten. Dann weißt du wenigstens, ob du was falsch machst, oder ober das tatsächlich ein bug ist oder vielleicht auch ein Feature Request.
Werde ich bei Gelegenheit machen.
Schreib bei Gelegenheit, was bei rausgekommen ist oder die Bugnr. Interessiert mich auch. Mit freundlichen Grüßen Christian -- 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
Am Fr, 17 Sep 2010 13:52:21 CEST schrieb Christian Brabandt: Hallo Christian,
Ich würde einen Bug reporten. Dann weißt du wenigstens, ob du was falsch machst, oder ober das tatsächlich ein bug ist oder vielleicht auch ein Feature Request.
Werde ich bei Gelegenheit machen.
Schreib bei Gelegenheit, was bei rausgekommen ist oder die Bugnr. Interessiert mich auch.
Ok, ich werde das gleich erledigen, finde aber nicht, wo ich den Bug eintrage. Ich habe das gefunden: http://linux.die.net/man/1/iconv iconv is written by Ulrich Drepper as part of the GNU C Library. 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
Hi Al! On Fr, 17 Sep 2010, Al Bogner wrote:
iconv is written by Ulrich Drepper as part of the GNU C Library.
Ja, gehört, IIRC zur glibc. Mal hier schauen: http://www.gnu.org/software/libc/bugs.html (ich hab gerade nur wenig Zeit, kann nicht selber schauen.) Mit freundlichen Grüßen Christian -- Im Traum und in der Liebe gibt's keine Unmöglichkeiten. -- Jßnos Arany -- 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
Am Fr, 17 Sep 2010 14:11:52 CEST schrieb Christian Brabandt: Hallo Christian,
On Fr, 17 Sep 2010, Al Bogner wrote:
iconv is written by Ulrich Drepper as part of the GNU C Library.
Ja, gehört, IIRC zur glibc. Mal hier schauen: http://www.gnu.org/software/libc/bugs.html
Du kannst den "Bug" hier verfolgen: http://sources.redhat.com/bugzilla/show_bug.cgi?id=12031 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
participants (3)
-
Al Bogner
-
Christian Brabandt
-
Torsten Förtsch