Все:
tr '[:lower:]' '[:upper:]'
(не забудьте кавычки, в противном случае , что не будет работать , если есть файл с именем :, l... или rв текущем каталоге) или:
awk '{print toupper($0)}'
или:
dd conv=ucase
предназначены для преобразования символов в верхний регистр в соответствии с правилами, определенными в текущей локали. Однако даже в тех случаях, когда локали используют UTF-8 в качестве набора символов и четко определяют преобразование из строчных в прописные, по крайней мере, GNU dd, GNU trи mawk(по умолчанию awkв Ubuntu, например) не следуют им. Кроме того, не существует стандартного способа указать локали, отличные от Cили POSIX, поэтому, если вы хотите преобразовать файлы UTF-8 в верхний регистр переносимым независимо от текущей локали, вам не повезло с помощью стандартной инструментальной панели.
Как часто, для мобильности, ваша лучшая ставка может быть perl:
$ echo lľsšcčtťzž | PERLIO=:utf8 perl -pe '$_=uc'
LĽSŠCČTŤZŽ
Теперь вам нужно остерегаться того, что не все согласны с тем, что является заглавной версией конкретного символа.
Например, в турецких языках прописными буквами iне является I, но İ( <U0130>). Вот с помощью инструмента семейной реликвии trвместо GNU tr:
$ echo ií | LC_ALL=C.UTF-8 tr '[:lower:]' '[:upper:]'
IÍ
$ echo ií | LC_ALL=tr_TR.UTF-8 tr '[:lower:]' '[:upper:]'
İÍ
В моей системе perlпреобразование в верхнюю часть определено в /usr/share/perl/5.14/unicore/To/Upper.pl, и я считаю, что оно ведет себя по-разному на нескольких символах, например, из GNU libc toupper()в C.UTF8локали, perlчто является более точным. Например, perlправильно преобразует ɀ в Ɀ , а GNU libc (2.17) - нет.