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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.