Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Навороченый 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, 12:34 |
|
||
|
Навороченый 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:02 |
|
||
|
Навороченый 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, 13:53 |
|
||
|
Навороченый grep
|
|||
|---|---|---|---|
|
#18+
evgeny12000, может как-нибудь так: Код: plaintext где search_words.txt содержит: Код: plaintext 1. 2. 3. , а exclude_words.txt содержит: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2011, 15:06 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=37559209&tid=1483859]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 276ms |
| total: | 515ms |

| 0 / 0 |
