Alle:
tr '[:lower:]' '[:upper:]'
(vergessen Sie nicht die Anführungszeichen, sonst das wird nicht funktionieren , wenn es eine Datei mit dem Namen :, l... oder rim aktuellen Verzeichnis) oder:
awk '{print toupper($0)}'
oder:
dd conv=ucase
sollen Zeichen gemäß den im aktuellen Gebietsschema definierten Regeln in Großbuchstaben umwandeln. Selbst wenn Gebietsschemas UTF-8 als Zeichensatz verwenden und die Konvertierung von Klein- in Großbuchstaben klar definieren, folgen ihnen zumindest GNU dd, GNU trund mawk( awkzum Beispiel die Standardeinstellung unter Ubuntu) nicht. Es gibt auch keine Standardmethode zum Festlegen anderer Gebietsschemas als Coder POSIX. Wenn Sie also UTF-8-Dateien unabhängig vom aktuellen Gebietsschema portabel in Großbuchstaben konvertieren möchten, haben Sie mit der Standard-Toolchest kein Glück.
Aus Gründen der Portabilität ist Perl die beste Wahl:
$ echo lľsšcčtťzž | PERLIO=:utf8 perl -pe '$_=uc'
LĽSŠCČTŤZŽ
Nun müssen Sie aufpassen, dass sich nicht alle darüber einig sind, wie die Großbuchstabenversion eines bestimmten Charakters lautet.
In türkischen Gebietsschemas ist der Großbuchstabe ibeispielsweise nicht I, sondern İ( <U0130>). Hier mit der Erbstück-Werkzeugkiste transtelle von GNU tr:
$ echo ií | LC_ALL=C.UTF-8 tr '[:lower:]' '[:upper:]'
IÍ
$ echo ií | LC_ALL=tr_TR.UTF-8 tr '[:lower:]' '[:upper:]'
İÍ
Auf meinem System ist die perlKonvertierung nach oben in definiert /usr/share/perl/5.14/unicore/To/Upper.pl, und ich stelle fest, dass sie sich beispielsweise bei einigen Zeichen aus der GNU-Bibliothek toupper()im C.UTF8Gebietsschema anders verhält und perlgenauer ist. Zum Beispiel perlkonvertiert ɀ korrekt in Ɀ , die GNU libc (2.17) nicht.