[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .

Форум «Техцентр» / grep

lins Сообщение #2 20 июня 2012 в 16:51
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #3 21 июня 2012 в 06:59
Новичок
1
Например, сейчас для меня зона "цукв" и "хзэж-щю" - это самые проблемные. Есть ли возможность найти, например, все слова, содержащие хотя бы по две буквы из перечисленного списка? Думаю, эта возможность была бы интересна не только мне.

Всё просто.
1. Качаешь отсюда список словоформ. В нём больше миллиона (!) словоформ, такого крупного списка я даже для английского не встречал в открытом доступе.
2. man grep.
3. ...
4. Профит.
Пример:
% awk '{print $3}' ru-rnc-big.freq | tr -d '[:digit:][a-zA-z]' | grep -P '[цуквхзэж\-щю].*[цуквхзэж\
-щю]' | head
как
уже
сказал
всех
человек
жизни
между
несколько
свою
жизнь


Дерзай. :)
lins Сообщение #4 21 июня 2012 в 10:45
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #5 21 июня 2012 в 10:58
Новичок
1
cygwin уже давно умеет UTF-8, поэтому и grep и остальные утилиты тоже должны уметь (перловка точно умеет, у него даже есть такая вкусняшка, как национальные алфавиты, то есть можно сказать: «это символ кириллицы»,— например). Но есть нюанс: если консоль не в UTF-8, а регэксп вводится в командной строке; будет «ой!». :)
lins Сообщение #6 21 июня 2012 в 11:01
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #7 21 июня 2012 в 12:04
Новичок
1
Я тебе про cygwin говорю. Что там в мелкософтовом интерпретаторе, я не в курсе (не пользуюсь).
lins Сообщение #8 21 июня 2012 в 12:17
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #9 21 июня 2012 в 13:02
Новичок
1
Локаль настрой.

% head ru-rnc-big.freq
6829968  1 и
5190215  1 в
3164900  2 не
2729210  2 на
2064408  1 с
2064178  3 что
1146383  3 как
1092177  1 я
1046292  1 к
1040711  2 он


% iconv -f cp1251 -t utf-8 ru-rnc-big.freq | head
6829968  1 Рё
5190215  1 Р?
3164900  2 Р?Рч
2729210  2 Р?Р°
2064408  1 С?
2064178  3 С╪С'Р?
1146383  3 как
1092177  1 С?
1046292  1 Рє
1040711  2 Р?Р?


% iconv -f cp1251 -t utf-8 ru-rnc-big.freq | head | grep -P "$(iconv -f cp1251 -t utf-8 <<< как)"
1146383  3 как


Видишь? Всё работает. Только не спрашивай, почему у меня консоль не UTF-8, я сам не помню уже. :)
Последний раз отредактировано 21 июня 2012 в 13:04 пользователем mystes
lins Сообщение #10 21 июня 2012 в 13:08
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #11 21 июня 2012 в 13:10
Новичок
1
Как это не видит? Я же тебе наглядно показал, что grep нормально ищет UTF-8.
lins Сообщение #12 21 июня 2012 в 13:17
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #13 21 июня 2012 в 13:24
Новичок
1
Я взял обычный текстовый файл и преобразовал в UTF-8. Разницы никакой.
lins Сообщение #14 21 июня 2012 в 13:28
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:31 пользователем lins
mystes Сообщение #15 21 июня 2012 в 13:40
Новичок
1
У меня вот так:
% locale
LANG=en_US.cp1251
LC_CTYPE="en_US.cp1251"
LC_NUMERIC="en_US.cp1251"
LC_TIME="en_US.cp1251"
LC_COLLATE="en_US.cp1251"
LC_MONETARY="en_US.cp1251"
LC_MESSAGES="en_US.cp1251"
LC_ALL=en_US.cp1251
lins Сообщение #16 21 июня 2012 в 17:06
Новичок
1
Последний раз отредактировано 25 июня 2012 в 21:30 пользователем lins
Ignoranceeee Сообщение #17 22 июня 2012 в 02:32
Новичок
1
lins писал(а):
Кстати, о птицах, есть ли нонича под Windows вариация grep, сносно работающая с юникодом?

http://unxutils.sourceforge.net/

Чтобы писать в форуме, нужно зарегистрироваться.


Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена