URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10078
[ Назад ]

Исходное сообщение
"Кириллица в bash (shell)"

Отправлено Alex , 20-Фев-16 10:12 
файл в кодировке utf8, в нем есть кириллица, обычный html.
мне надо удалить все из файла, оставить только текст.
и понимаю что многие команды и регулярка не понимают кириллицу.

поделитесь опытом, кто как поступает в такой ситуации?


Содержание

Сообщения в этом обсуждении
"Кириллица в bash (shell)"
Отправлено Andrey Mitrofanov , 20-Фев-16 10:25 
> файл в кодировке utf8, в нем есть кириллица, обычный html.
> мне надо удалить все из файла, оставить только текст.
> и понимаю что многие команды и регулярка не понимают кириллицу.
> поделитесь опытом, кто как поступает в такой ситуации?

**License: GPL-3+

/usr/lib/mc/ext.d/web.sh                        789/1097               71%
#!/bin/sh
        
# $1 - action
# $2 - type of file

action=$1        
filetype=$2        

[ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
                                                                                          
do_view_action() {
    filetype=$1

    case "${filetype}" in
    html)
        links -dump "${MC_EXT_FILENAME}" 2>/dev/null || \
            w3m -dump "${MC_EXT_FILENAME}" 2>/dev/null || \
            lynx -dump -force_html "${MC_EXT_FILENAME}"



"Кириллица в bash (shell)"
Отправлено Alex , 20-Фев-16 11:21 
>         links w3m lynx

спасибо, ловко!

но вопрос как дальше разбирать кириллицу?

sed, tr как то не очень ее обрабатывают..

например, надо разобрать на слова, а все остальное удалить, включая пустые строки.


"Кириллица в bash (shell)"
Отправлено Pahanivo , 20-Фев-16 11:47 
разбирай perl - он умеет работать с кодировками


"Кириллица в bash (shell)"
Отправлено Andrey Mitrofanov , 20-Фев-16 12:16 
> но вопрос как дальше разбирать кириллицу?
> sed, tr как то не очень ее обрабатывают..

Возьми те, которые умеют.

$ lynx -dump -nolist 106820+022-1.htm | tee >(wc -l >&2) |grep 'лицензи[юеяю]'
     распространяется под лицензией GPL.
      >Код Ardour распространяется под лицензией GPL

     нарушают лицензию GPL. Бинарник платный только из официального
425
$ lynx -dump -nolist 106820+022-1.htm | tee >(wc -w >&2) |egrep -ci '\<[а-я]+\>'
1801
239
$ lynx -dump -nolist 106820+022-1.htm | tee >(wc -w >&2) |egrep -ci '\<[а-яА-Я]+\>'
1801
239
$ lynx -dump -nolist 106820+022-1.htm |sed -nr 's/(лицензи)[юея]/\1Я!/p'
     распространяется под лицензиЯ!й GPL.
      >Код Ardour распространяется под лицензиЯ!й GPL

     нарушают лицензиЯ! GPL. Бинарник платный только из официального
$ lynx -dump -nolist 106820+022-1.htm |grep 'лицензи[юея]' |tr е Я
     распространяЯтся под лицЯнзиЯй GPL.
      >Код Ardour распространяЯтся под лицЯнзиЯй GPL

     нарушают лицЯнзию GPL. Бинарник платный только из официального

> например, надо разобрать на слова, а все остальное удалить, включая пустые строки.

Тебе решение или совет?...


"Кириллица в bash (shell)"
Отправлено Andrey Mitrofanov , 20-Фев-16 12:24 
>> но вопрос как дальше разбирать кириллицу?
> $ lynx -dump -nolist 106820+022-1.htm |grep 'лицензи[юея]' |tr е Я
>      распространяЯтся под лицЯнзиЯй GPL.
>      >Код Ardour распространяЯтся под лицЯнзиЯй GPL
>      нарушают лицЯнзию GPL. Бинарник платный только из
> официального

Чтоб вопросов про уникод не было:

$ lynx -dump -nolist 106820+022-1.htm |grep -io 'зи[юея]' |tr е Я |od -t x1 |head -1
0000000 d0 b7 d0 b8 d0 af 0a d0 b7 d0 b8 d0 af 0a d0 b7