Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.12.2011, 12:34
|
|||
|---|---|---|---|
|
|||
Навороченый grep |
|||
|
#18+
Задача искать строки в которых присутствует одно из ключевых слов (их может быть около 100), а также игнорировать строки в которых присутствует одно из ключевых слов (их тоже может быть около 100). Главная цель, чтоб это работало оптимально быстро. Вот вариант который получилось сделать. Но у него есть недостаток, есть ограничение на длину внутренних файлов (search_words.txt и exclude_words.txt) egrep -r `cat search_words.txt` * | egrep -v `cat exclude_words.txt` search_words.txt - mama|papa|deda|baba exclude_words.txt - sin|vnuk|brat|sestra Есть другие идеи ? Может эффективней делать perlom ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2011, 13:02
|
|||
|---|---|---|---|
Навороченый grep |
|||
|
#18+
On 12/05/2011 01:34 PM, evgeny12000 wrote: > Вот вариант который получилось сделать. Но у него есть недостаток, есть > ограничение на длину внутренних файлов (search_words.txt и exclude_words.txt) > > egrep -r `cat search_words.txt` * | egrep -v `cat exclude_words.txt` > > search_words.txt - mama|papa|deda|baba > exclude_words.txt - sin|vnuk|brat|sestra > > Есть другие идеи ? Ну самое эффективное -- читать одну строку исходного файла один раз. Эффективнее уже некуда -- лучше только в БД или ещё куда загружать и индексы строить, это будет логарифмы (может быть). Можно оба действия сделать в одном рег.выражении, но только толку мало -- всё равно строка только один раз читаться будет. И я не знаю, как и можно ли это сделать с egrep, у него там свои регвыражения. Может эффективней делать perlom ? Можно и седом. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2011, 13:53
|
|||
|---|---|---|---|
|
|||
Навороченый grep |
|||
|
#18+
MasterZivOn 12/05/2011 01:34 PM, evgeny12000 wrote: > Вот вариант который получилось сделать. Но у него есть недостаток, есть > ограничение на длину внутренних файлов (search_words.txt и exclude_words.txt) > > egrep -r `cat search_words.txt` * | egrep -v `cat exclude_words.txt` > > search_words.txt - mama|papa|deda|baba > exclude_words.txt - sin|vnuk|brat|sestra > > Есть другие идеи ? Ну самое эффективное -- читать одну строку исходного файла один раз. Эффективнее уже некуда -- лучше только в БД или ещё куда загружать и индексы строить, это будет логарифмы (может быть). Можно оба действия сделать в одном рег.выражении, но только толку мало -- всё равно строка только один раз читаться будет. И я не знаю, как и можно ли это сделать с egrep, у него там свои регвыражения. Может эффективней делать perlom ? Можно и седом. Да, согласен с вами. Покажите конкретные примеры, и ещё важен нюанс большое количество ключевых слов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2011, 15:06
|
|||
|---|---|---|---|
|
|||
Навороченый grep |
|||
|
#18+
evgeny12000, может как-нибудь так: Код: plaintext где search_words.txt содержит: Код: plaintext 1. 2. 3. , а exclude_words.txt содержит: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=25&tablet=1&tid=1483859]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 10ms |
| total: | 265ms |

| 0 / 0 |
