LINUX.ORG.RU

баш, команды, и русский язык.echo «ЛоВеРкеЙс» | tr 'А-Я' 'а-я' неработает


0

0
Русский язык нормально отображается и все прочее в консоле... Но вот понадобилось использовать команду tr... и она в некотором смысле неработает с русскими буковками... Пример: echo "LoWeRcaSe" | tr 'A-Z' 'a-z' - работает... echo "ЛоВеРкеЙс" | tr 'А-Я' 'а-я' - работает... нетак как нада )) ну и вопрос ... КАК ИСПРАВИТЬ?
anonymous
вот на echo "ЛоВеРкеЙс" | tr 'А-Я' 'а-я' выдает : �с
anonymous
()
Походу, tr - неюникодный. Посмотрел у себя - тоже не работает.
KRoN73 ★★★★★
()
Мабуть никак, только писать свою тузлу ил ипатч
wfrr ★★☆
()
мда... какдаж перейдут на стандарт? >:| ... Ну а где исходник этого tr можно скачать ?
anonymous
()
Костыль, конечно... но с tr старая бага и ее никак не починят.

bash$ echo "LoWer ЛоВеРкеЙс" | perl -we 'binmode (STDIN, ":utf8"); binmode (STDOUT, ":utf8"); while (<>) { print lc; }'
lower ловеркейс

bash$ perl --version

This is perl, v5.8.8 built for i386-linux-thread-multi
[skip]
lodin ★★★★
()
припарка, конечно, но...
$ echo "Привет Мир" |iconv -t koi8-r |`echo "tr 'ю-ъ' 'Ю-Ъ'" |iconv -t koi8-r` |iconv -f koi8-r
ПРИВЕТ МИР
alexsaa
()
(~). echo "ЛоВеРкеЙс" | tr 'А-Я' 'а-я'
ловеркейс
(~). echo "ЛоВеРкеЙс" | tr '[:upper:]' '[:lower:]'
ловеркейс
anonymous
()
Ответ на: комментарий от anonymous
:-) А у меня выдало: echo "ЛоВеРкеЙс" | tr 'А-Я' 'а-я' лоВеРкейс

Но: echo "ЛоВеРкеЙс" | tr '[:upper:]' '[:lower:]' ловеркейс

Странненько как-то работает...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от lodin
Ах, да, и локаль-то юникодная? В cp1251 всё отлично!

bash$ echo "ЛоВеРкеЙс" | iconv -t cp1251 | LC_ALL=ru_RU.CP1251 tr '[:upper:]' '[:lower:]' | iconv -f cp1251
ловеркейс
lodin ★★★★
()
Ответ на: комментарий от anonymous
>Тебе что, известен дистриб, в котором оно работает с юникодом?

Нет, но я не оставляю надежду. Потому и спрашиваю.

lodin ★★★★
()
Ответ на: комментарий от lodin
> Дистриб какой?

Из общих соображений: попробуй поставить самые новые glibc и binutils. Там недавно что-то чинили, после чего стало корректно работать с регистром русских букв в юникоде.

acheron ★★★★
()
Ответ на: комментарий от anonymous
> а где исходники можно взять?

$ cvs -d:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs login
Logging in to :pserver:anoncvs@anoncvs.fr.freebsd.org:2401/home/ncvs
CVS password: # paste `anoncvs' here
$ cvs -d:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs co -P tr
$ cd tr
$ make all install clean?

или

$ git clone git://git.sv.gnu.org/coreutils.git
$ cd coreutils
$ make install clean?
anonymous
()
Ответ на: комментарий от acheron
> попробуй поставить самые новые glibc и binutils. Там недавно что-то чинили, после чего стало корректно работать с регистром русских букв в юникоде.

абсолютно не зависит. coreutils не умели юникод и уметь будут неизвестно когда.

как вариант можно попробовать http://heirloom.sourceforge.net/tools.html . но — я не пробовал, честно говорю.

dmiceman ★★★★★
()
Ответ на: комментарий от dmiceman
> coreutils

Ой, извиняюсь, я не coreutils имел в виду, а несколько часто применяемых программ... С ходу вспомнил только less и grep.

acheron ★★★★
()
Ответ на: комментарий от acheron
В перле, несмотря на общую его юникодизированность, с регэкспом тоже вроде была. Только джава может спасти этот мир.
anonymous
()
Ответ на: комментарий от dmiceman
>как вариант можно попробовать http://heirloom.sourceforge.net/tools.html . но — я не пробовал, честно говорю.

скачал... скомпилировал оттуда tr ... Заработало! ^_^

>FreeBSD 8-CURRENT только вопрос.. неужто в фряхе используются именно эти утилитки поумолчанию... или они там тоже сами юникод внедрили? Кстати этот порт кореутилсов с юникодом похоже написан именно под бсд системы..

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.