?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
UTF-8 grep hack
nyaload
_winnie
echo привет | LC_ALL=C grep $'[^\x80-\xbf][\x80-\xbf]*' -o
Tags: ,


  • 1
И где здесь hack?

Мне показалось забавным, что можно работать с UTF-8 файлами в bash без локали, регулярками

Например, задача "отрезать первые 100 букв" может быть решена и локали C:

( echo привет ; echo privet ) | LC_ALL=C grep -E $'^([^\x80-\xbf][\x80-\xbf]*){0,3}' -o


Edited at 2013-07-01 10:47 am (UTC)

Надо сказать, даже весьма практичный хак.

Регулярка для grep -E: '([^\x80-\xbf][\x80-\xbf]*){0,10}(О|о)дно и то( |)же([^\x80-\xbf][\x80-\xbf]*){0,10}'

"LC_ALL=С grep" у меня работает в 10 раз быстрее чем grep с дефолтной локальню UTF-8, и в 100 раз быстрее чем grep -i с дефолтной локалью.

Ага. Спасибо, возьму на заметку.

  • 1