|
| Дата |
|
USD/RUB | 88.4375 | BTC/USD | 68049.7798 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
27.09.2010, 16:46
|
Start Post: нужно отпарсить и выпарсить
|
чо ваще
Регистрация: 15.07.2009
Сообщений: 116
Бабло: $22245
|
есть база sql размером 3гб
нужно оттуда выпарсить мыльники
чем пользоваться?
|
|
|
27.09.2010, 18:47
|
#12
|
Мегапихарь
Регистрация: 27.01.2010
Сообщений: 87
Бабло: $15975
|
Цитата:
Сообщение от chesser
Код:
mysqldump -u user -p dbname | grep -E -o -h '[a-zA-Z]+@([a-zA-Z]+\.)+[a-zA-Z]{2,3}' | tr A-Z a-z | sort | uniq
кто короче?
|
Регекспы и греп, конечно, круто, только 3 гига всё-таки.
В греп мне логи!
__________________
СелявиСильвуплеДеньгиПокажи
|
|
|
27.09.2010, 18:50
|
#13
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,348
Бабло: $470735
|
правда если 3гига и памяти мало, то буфера может не хватить. Лучше дамп в промежуточный файл слить:
Код:
mysqldump -u user -p dbname > sqldump.sql
grep -E -o -h '[a-zA-Z]+@([a-zA-Z]+\.)+[a-zA-Z]{2,3}' sqldump.sql | tr A-Z a-z | sort | uniq
|
|
|
27.09.2010, 18:53
|
#14
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,348
Бабло: $470735
|
Цитата:
Сообщение от ShowMeDaMoney
Регекспы и греп, конечно, круто, только 3 гига всё-таки.
|
а как ты без регекспов емейлы надергаешь из произвольного текста? - почти никак.
а 3 гига для системной команды grep - это не проблема....ну подождешь немного, уж она то точно работает быстрее других вариантов и правильно использует системные ресурсы.
|
|
|
27.09.2010, 18:54
|
#15
|
Мегапихарь
Регистрация: 27.01.2010
Сообщений: 87
Бабло: $15975
|
Цитата:
Сообщение от chesser
правда если 3гига и памяти мало, то буфера может не хватить. Лучше дамп в промежуточный файл слить:
Код:
mysqldump -u user -p dbname > sqldump.sql
grep -E -o -h '[a-zA-Z]+@([a-zA-Z]+\.)+[a-zA-Z]{2,3}' sqldump.sql | tr A-Z a-z | sort | uniq
|
Ну,да. Тогда, в случае если мылы только из одного поля интересуют:
mysqldump -u user -p dbname tablename -w "email<>NULL" > emails.sql
grep -E -o -h '[a-zA-Z]+@([a-zA-Z]+\.)+[a-zA-Z]{2,3}' sqldump.sql | tr A-Z a-z | sort | uniq[/CODE][/QUOTE]
__________________
СелявиСильвуплеДеньгиПокажи
|
|
|
27.09.2010, 18:58
|
#16
|
Мегапихарь
Регистрация: 27.01.2010
Сообщений: 87
Бабло: $15975
|
Цитата:
Сообщение от chesser
а как ты без регекспов емейлы надергаешь из произвольного текста? - почти никак.
а 3 гига для системной команды grep - это не проблема....ну подождешь немного, уж она то точно работает быстрее других вариантов и правильно использует системные ресурсы.
|
В том-то и дело, что если это таблица, т.е. данные структурированны, для начала можно отрезать ненужные поля, что уменьшит обьём того, что будем парсить и ускорим процесс.
Регекспы круть, но не панацея, имхо. Чем больше обьём данных тем выше вероятность того, что где-то всё перекосится. Натыкался на такое иногда.
__________________
СелявиСильвуплеДеньгиПокажи
|
|
|
27.09.2010, 19:00
|
#17
|
Senior Member
Регистрация: 15.11.2008
Сообщений: 13,195
Бабло: $247847031
|
Цитата:
Сообщение от ShowMeDaMoney
В том-то и дело, что если это таблица, т.е. данные структурированны, для начала можно отрезать ненужные поля, что уменьшит обьём того, что будем парсить и ускорим процесс.
Регекспы круть, но не панацея, имхо. Чем больше обьём данных тем выше вероятность того, что где-то всё перекосится. Натыкался на такое иногда.
|
если правильно регексп составлен, ничего не перекосится
|
|
|
27.09.2010, 19:06
|
#18
|
Мегапихарь
Регистрация: 27.01.2010
Сообщений: 87
Бабло: $15975
|
Цитата:
Сообщение от imgreen
если правильно регексп составлен, ничего не перекосится
|
А кто собирается спецом неправильно его писать?
Много лет назад в универе мне вбивали в голову, что даже самый невероятный процесс имеет место быть, если в запасе у нас неограниченное количество времени. Соответственно, наша задача сократить время процесса и уменьшить вероятность того, что он выдаст что-то невероятное
__________________
СелявиСильвуплеДеньгиПокажи
|
|
|
27.09.2010, 19:10
|
#19
|
Мегапихарь
Регистрация: 27.01.2010
Сообщений: 87
Бабло: $15975
|
Кстати
[a-zA-Z]+@([a-zA-Z]+\.)+[a-zA-Z]{2,3}
Я редко пользую их, но что-то мне подсказывает, что эта конструкция может неадекватно отреагировать на мыло:
1. уюзер в имени может иметь точку [email protected]
2. {2,3} - а как насчёт домена info ?
__________________
СелявиСильвуплеДеньгиПокажи
|
|
|
27.09.2010, 20:05
|
#20
|
Senior Member
Регистрация: 15.11.2008
Сообщений: 13,195
Бабло: $247847031
|
[a-zA-Z\.]+@([a-zA-Z]+\.)+[a-zA-Z]{2,4}
так лучше?)
Цитата:
А кто собирается спецом неправильно его писать?
|
я понимаю о чем ты, но для такой задачи как поиск email, сложно составить регулярку, которая выдаст неадекватные результаты
|
|
|
27.09.2010, 20:39
|
#21
|
Ебланнед
Регистрация: 03.06.2008
Сообщений: 3,846
Бабло: $432125
|
бял я под вином, щас ещё чуть чуть и захочу что - нибудь бесплатно написать ))))))
|
|
|
|