LINUX.ORG.RU
ФорумTalks

Плохой sed


0

0

$ echo «0Ffdsfdsfds 12212 ururu» | sed 's/^.*ururu/123/g'
123
$ echo «0йцукен 12212 ururu» | sed 's/^.*ururu/123/g'
0йцукен 12212 ururu

Где бы почитать как это лечится?

megabaks@localhost ~ $ echo "0Ffdsfdsfds 12212 ururu" | sed 's/^.*ururu/123/g'
123
megabaks@localhost ~ $ echo "0йцукен 12212 ururu" | sed 's/^.*ururu/123/g'
123
megabaks@localhost ~ $ 

Ы?

megabaks ★★★★ ()
[fjfalcon@desktop ~]$ echo "0йцукен 12212 ururu" | sed 's/^.*ururu/123/g'
123

странно, может в локале дело?

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

Возможно, что и в локали, но вот где копать все-равно не пойму.

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
$ cat /etc/debian_version
5.0.4

z1pp3r ()
Ответ на: комментарий от z1pp3r
fjfalcon@server:~$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
fjfalcon@server:~$ cat /etc/debian_version 
5.0.4
fjfalcon@server:~$ echo "0йцукен 12212 ururu" | sed 's/^.*ururu/123/g' 
123
fjfalcon@server:~$ 

Таки действительно странно... на обычном стейбле все отлично работает...

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

таки ссзб - выставил в терминале кодировку кои8.
С йцукеном разобрался, вопрос 2:

$ LANG=ru_RU.koi8r curl <блаблабла> | | sed 's/^.*\]//g'
совершенно не работает. Текст на странице - кои8, и его сед упорно игнорирует

z1pp3r ()
Ответ на: комментарий от megabaks

пробел между | и | - плохо скопипастил. там после curl'а еще греп, видимо от него подцепил.
А игнорирует - значит ведет себя так же как в первом посте

z1pp3r ()
Ответ на: комментарий от z1pp3r

конечно костыль... но можно выхлоп curl'a из koi8 в utf-8 перегонять.. а опасля sed'ом ;)

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

Да, так тоже пробовал - получалось чтото типа

iconv: illegal input sequence at position 203

z1pp3r ()
Ответ на: комментарий от fjfalcon

Ну как curl снова наткнется на русские буквы(за неделю он, гад такой, первый раз их нашел) - попробую, спасибо.

z1pp3r ()
Ответ на: комментарий от z1pp3r
$ LANG=ru_RU.koi8r curl <блаблабла> | | sed 's/^.*\]//g'

AFAIU, в таком варианте LANG переопределяется только для curl'а, grep и sed работают с системной локалью. Нужно писать либо

export LANG=ru_RU.koi8r
curl | grep | sed
, либо
LANG=ru_RU.koi8r sh -c "curl | grep | sed"

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