FreeBSD 6 tr Bug?

h0sch1

Well-Known Member
Hi Leute

Hab da gerade eine kleine Entdeckung gemacht:

uname -r

Code:
6.0-STABLE

Mit FreeBSD tr
uname -r | tr [A-Z] [a-z]

Code:
6.0-sßable


Mit GNU tr
uname -r | gtr [A-Z] [a-z]

Code:
6.0-stable

echo "6.0-STABLE" | tr [A-Z] [a-z]

Code:
6.0-sßable

Nun die Frage:
Ist das jetzt ein Bug im FreeBSD tr oder muss unter FreeBSD dem tr eine zusätzliche Option mitgegeben werden


Danke schon mal
 
Laut der manpage wird die aktuelle locale-Einstellung berücksichtige, was unter anderem wohl gerade bei Ranges Probleme machen kann (siehe COMPATIBILITY)

Unter 6.0-RELEASE hab ich das selbe "Problem" wie du (locale "ISO-8859-15"). Mit 5.3 gehts (locale "C").

Das geht aber überall:
Code:
echo "6.0-STABLE" | tr '[:upper:]' '[:lower:]'
Man müsste das jetzt mal testen, wenn man die locale umstellt, wie es sich da verhällt.
 
was macht er bei:
echo ABCDEFGHIJKLMNOPQRSTUVWXYZ | tr [A-Z] [a-z]
?

Mal mit 'ner anderen Shell einloggen und wiederholen.

Falls es immer noch das T ist (oder sogar mehrere Zeichen),
sieht es so aus als hättest Du einen Bug gefunden.
 
@Wiedmann

Volltreffer!

Hab meine locale von de_DE.ISO-8859-1 auf C umgestellt und schon gehts!

@walt

Die Ausgabe von:
echo ABCDEFGHIJKLMNOPQRSTUVWXYZ | tr [A-Z] [a-z]

ist ganz normal
abcdefghijklmnopqrstuvwxyz

( Natürlich noch mit der alten locale )
 
Nur noch kurz zur info

hab mein BSD jetzt auf UTF 8 umgestellt ( wie im wiki beschrieben) und siehe da, der tr funktioniert und GIMP usw. sind auch auf deutsch.
 
h0sch1 schrieb:
Volltreffer!

Hab meine locale von de_DE.ISO-8859-1 auf C umgestellt und schon gehts!
An dem gleichen Problemchen hatte ich auch ein wenig gekaut. Ich finde es aber eleganter, die Zeichenklassen ("[:upper:]" und "[:lower:]") zu verwenden anstatt die Sprach- und Zeichensatzeinstellungen anzupassen.

Gruß Björn
 
Zurück
Oben