URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 79621
[ Назад ]

Исходное сообщение
"В рамках проекта Glark развивается альтернатива Grep"

Отправлено opennews , 10-Авг-11 13:40 
Представлен (http://www.linux.com/learn/tutorials/480530:is-glark-a-bette...) проект Glark (http://www.incava.org/projects/glark), в рамках которого создана утилита, претендующая на роль улучшенной альтернативы grep. Код Glark написан на языке Ruby.


Отличительные черты Glark:

-  Подсветка масок и имен файлов в выводе;
-  Использование perl-совместимых регулярных выражений (PCRE (http://www.pcre.org)), привычных для разработчиков на языках Perl, PHP, Python и Ruby;
-  Возможность использования составных выражений, работающих с учетом содержимого нескольких строк. Например: "glark --and=5 --or cout print --or double float *.c" выполнит поиск ключей "cout" или "printf" в ближайших 5 строках от строк с ключами "double" или "float";
-  Автоматическое определение тестовых файлов (поиск в бинарных файлах не производится;
-  Режим совместимости с GNU grep;
-  Поддержка указания диапазонов. Указание опций "--before" и "--after" позволяет ограничить область поиска, отсеяв опред...

URL: http://www.linux.com/learn/tutorials/480530:is-glark-a-bette...
Новость: http://www.opennet.ru/opennews/art.shtml?num=31446


Содержание

Сообщения в этом обсуждении
"В рамках проекта Glark развивается альтернатива Grep"
Отправлено рш , 10-Авг-11 13:40 
+6 к фичам, -10 к скорости, -100 к размеру (руби же в зависимостях)

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:55 
+ 100 к размеру, вы хотели сказать?

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено рш , 10-Авг-11 14:44 
да

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 15:58 
Алсо:
+1 к скиллу кодинга в руби
-10 к скиллу разумного решения инжеерных задач.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:50 
а я почему-то думал, что главное в этой утилите - скорость...

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:58 
> а я почему-то думал, что главное в этой утилите - скорость...

поддерживаю


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:04 
> а я почему-то думал, что главное в этой утилите - скорость...

Мне почему-то фич оригинального грепа хватает выще крыши, а вот идея еще и руби качать для работы с оным да потом еще за версией оного следить меня что-то совсем не прельщает.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 20:36 
> руби качать для работы с оным

Ruby — зависимость texlive, его не надо качать.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 21:04 
> Ruby — зависимость texlive, его не надо качать.

У меня почему-то нет никакого texlive и руби, но греп есть.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Andrew Kolchoogin , 10-Авг-11 16:30 
Нет. (C)

grep(1) никогда за скорость не боролась. Хотите быстро искать подстроку -- используйте fgrep(1).

+скорость
-regexp

Быстро, дёшево, качественно -- любые два на выбор.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Anonymouse , 10-Авг-11 17:43 
Так то оно так ... Но вот даже не запуская этот тулз готов на деньги поспорить что "медленному" grep'у он сольёт :) Напрочь!(С)Анек

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:53 
Уберите из особенностей то, что есть в GNU grep или отделите их как-то

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:58 
Подсветка есть (--color для цвета, -H для отоборажения имени файла, -n номера строк)
Диапозоны есть (-A -B -C)
и вообще man grep сначала

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 13:59 
Мне эта какашка на руби не нужна. Пусть на си перепишут. :)


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено oops , 10-Авг-11 14:00 
> улучшенной альтернативы grep.
> Код Glark написан на языке Ruby.

не клеится как-то


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 14:08 
чем оно лучше ack? (http://betterthangrep.com/)

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Одмин , 11-Авг-11 18:04 
Не знаю как щас а ack пару лет назад был глюкодромом: он выводил не всё. Не знаю как авторы добились. Плюс утилита стрёмная - её код автосгенерирован.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено inv , 10-Авг-11 14:32 
Кому это надо? Мало того что PRCE сами по себе медленные из-за того что разработчики разменяли фичи на скорость. (Самая быстрая реализация регэкспов основана на теории конечных автоматов и конструкции Томсона.)
Так эти велосипедисты решили ещё замедлить всё это дело, переписав греп на руби... сразу закопать!

ps
http://swtch.com/~rsc/regexp/regexp1.html


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 11-Авг-11 02:24 
> Так эти велосипедисты решили ещё замедлить всё это дело, переписав греп на
> руби... сразу закoпать!

Ну это вы понимаете, а рубисты понимают что "если на руби - значит улучшенная альтернатива". Логика забавная, но почему-то у питонистов, рубистов и жабистов это такой вот синдром.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 14:48 
Ребята, куда вам эта скорость? Да, иногда она необходима. Терабайты логов, бла-бла-бла. Да и то, узкое место в этом случае - ввод/вывод, на чем написана утилита - какбы не самое важное.
В большинстве же случаев удобство пользования куда приятнее. И тут свистелки вроде раскраски и PCRE как раз кстати.

Хотя, по-моему тоже неочень получилось. Диапазоны бесполезны из-за head/tail, фич маловато, да и grep сам по себе неплох. Лучше бы find с человеческим лицом сделали.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено inv , 10-Авг-11 15:17 
grep быстр. Реализации регэкспов основанные на backtracking'е дохнут далеко не от гигабайтов логов, а от некоторых вариватов выражений, при том не очень длинных. (в статейке, что я привёл пример)
Если нужны фичи, то опять таки, всё за исключением 'backreferences' есть к примеру тут:
http://code.google.com/p/re2/

"Unlike most automata-based engines, RE2 implements almost all the common Perl and PCRE features and syntactic sugars. It also finds the leftmost-first match, the same match that Perl would, and can return submatch information. The one significant exception is that RE2 drops support for backreferences¹ and generalized zero-width assertions, because they cannot be implemented efficiently. The syntax page gives full details."


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:13 
> Ребята, куда вам эта скорость?

Ржевский, молчать! Вот когда сам грепнешь пару гигов логов сервака - тогда и поймешь куда она нам :E.

> Да, иногда она необходима. Терабайты логов, бла-бла-бла. Да и то, узкое место в
> этом случае - ввод/вывод, на чем написана утилита - какбы не самое важное.

Ввод-вывод на хороших носителях может выдавать сотни мегов в секунду. Это ваше кульное руби да еще с PCRE на раз заткнется прожевать даже скромные 100Мб/сек с стандартного сатащного диска.

> В большинстве же случаев удобство пользования куда приятнее. И тут свистелки вроде
> раскраски и PCRE как раз кстати.

Не знаю кому там кстати, но мне возможностей стандартного грепа хватало, перспективу писать регэкспы я в гробу видал. И, ВНЕЗАПНО, у меня почему-то греп и без велосипедистов уже и так умеет раскраску.

> Хотя, по-моему тоже неочень получилось. Диапазоны бесполезны из-за head/tail,
> фич маловато, да и grep сам по себе неплох. Лучше бы find с человеческим лицом сделали.

Зачем нужно прикручивать человеческое лицо к find? Чтобы детей им пугать? oO Велосипедисты и так справляются с пуганием, даже без человеческих рож прикрученных к утилитам.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 18:52 
> Ребята, куда вам эта скорость? Да, иногда она необходима. Терабайты логов, бла-бла-бла. Да и то, узкое место в этом случае - ввод/вывод, на чем написана утилита - какбы не самое важное.

Наглая, тупая ложь. Скорость необходима всегда, а это угрёбище на ruby неспособно обрабатывать поток со скоростью диска, не говоря уже о ssd, рейдах, потоке из 10Gb сети, огромном выводе программы или банальном gunzip < log.gz | grep

Кроме того, иногда необходимо запустить grep много раз, а тут важна скорость запуска, которая у этого угрёбища тоже кошмарная.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено segoon , 10-Авг-11 14:58 
Как-то не впечатляет :(

> Подсветка масок и имен файлов в выводе;

grep --color

> Использование perl-совместимых регулярных выражений (PCRE), привычных для разработчиков на языках Perl, PHP, Python и Ruby;

grep -P ?  Хотя experimental.

> Возможность использования составных выражений, работающих с учетом содержимого нескольких строк. Например: "glark --and=5 --or cout print --or double float *.c" выполнит поиск ключей "cout" или "printf" в ближайших 5 строках от строк с ключами "double" или "float";

Вот тут наверное всё же лучше юзать awk - язык по-богаче будет для подобных выкрутасов.

> Автоматическое определение тестовых файлов (поиск в бинарных файлах не производится;

Софт не должен об этом думать.  Если не нужны бинарные файлы - не грепайте.  Если не хочется долго ждать завершения поиска в длинных строках по хитрым регекспам - юзать rlimit.

> Поддержка указания диапазонов. Указание опций "--before" и "--after" позволяет ограничить область поиска, отсеяв определенную часть файла (например, для игнорирования первых 20 строк с заголовком "glark --after 20 маска файл").

Чем head/tail не угодил?

ИМХО конечно, но утилиты уровня grep должны быть быстрые и максимально простые.  Руби существует не для таких вещей.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:44 
> Вот тут наверное всё же лучше юзать awk - язык по-богаче будет для подобных выкрутасов.

Самое интересное, что это и побыстрее будет, а не только побогаче =)


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 15:30 
А в чем, собственно, проблем с грепом?

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:17 
> А в чем, собственно, проблем с грепом?

Он написан не на руби. Поэтому у некоторых на заднице вылез красный прыщ - у них зуд, заставляющий заниматься велосипедостроением. Вообще, не жирно ли о каждом скриптике по новости зафигачивать? А если я шелскрипт на 5 строк рожу - это будет темой для новости? Может я даже какую системную утиль заменю. Ну вот например я могу на раз заменить /bin/false на версию написанную на баш (питоне, руби, перле, похапэ, яваскрипте или чем там еще). Давайте по этому поводу новость напишем? А лучше по новости на каждый язык, чтобы уж совсем хорошо :)


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:46 
Подозреваю, что парни кодили исключительно ради удовольствия (как и многие другие), и от них глупо ждать чего-то полезного, они не ради этого стараются. А вот насчет того, зачем такие новости постить - тут я согласен

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 16:23 
Ужасно. Если тут и есть здравые идеи, то это только использование pcre вместо убогих posix'овых регулярок, хотя ещё лучше было бы заюзать Яндексовские pire, бо они в разы быстрее, а все фичи pcre почти никогда не нужны.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено iCat , 10-Авг-11 17:54 
Ух, ты!!! Теперь ждём альтернативу ed на QT?
Что ж, JustForFun...
Кстати, а почему бы не сделать 3-х мерное выделение найденных слов? С музыкальным сопровождением?

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено all_glory_to_the_hypnotoad , 10-Авг-11 19:40 
да, кстати, было бы круто. И с возможностью постить найденное сразу в фейсбук или вконтакт

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено redwolf , 11-Авг-11 15:59 
Это можно было бы хотя бы поставить поиграться и поржать. Такие бредовые проэкты периодически возникают. Вроде quake в псевдографике ) В чём fun тут непонятно. Недостатка юзабельности grep за мой стаж общения с linux не замечено.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено gegMOPO4 , 10-Авг-11 18:41 
У Microsoft есть альтернатива grep-у ещё с 3-й версии DOS. Называется find.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 18:49 
Альтернатива - это нечто, сравнимое по функциональности, чего про мсовский файнд не скажешь

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено gegMOPO4 , 10-Авг-11 18:57 
Какая ОС — такая и альтернатива. Потоковые утилиты в однозадачной системе — то ещё издевательство.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 10-Авг-11 21:22 
> У Microsoft есть альтернатива grep-у ещё с 3-й версии DOS. Называется find.

Уточним, это не альтернатива а жалкая пародия.



"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Andrey Mitrofanov , 11-Авг-11 15:20 
Альтернативон одарённая альтернатива! ---"Нежнее, Владимир."

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено AHAHAC , 10-Авг-11 20:32 
Цвет - alias grep='grep --color=yes'
Возможность использования составных выражений -egrep  

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено maxkit , 10-Авг-11 21:08 
Предлагаю написать новый grep на mono, чтобы работал только через браузер, а потом всего лишь парсить результат по скриншоту в браузере, и вставлять этот grep в обязательном порядке во все дистрибутивы.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Мяут , 11-Авг-11 00:17 
В ChromeOS так и есть я полагаю. :)

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено Аноним , 11-Авг-11 02:27 
> В ChromeOS так и есть я полагаю. :)

Там на яве мыслить полагается наверное. Ну или хотя-бы на яваскрипте.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено anonymous , 11-Авг-11 03:17 
(задумчиво) а вот у офигенной библиотеки tre в составе идёт agrep. мало того, что сама tre очень шустра (да-да, то самое, что выше в ссылках — fallback только для бэктрэкинга), так оно ещё умеет «приблизительные регэкспы» (то бишь, регэкспы с указаным диапазоном несовпадения). и написано на сях, потому маленькое и шустрое.

вопрос: этот рубикомбайн (который руби за сабой тянет) — умеет «приблизительные регэкспы» хотя бы? или скорость, как у agrep?

вопрос риторический, если что.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено inv , 11-Авг-11 08:58 
Спасибо, интересная библиотека, приму на заметку :)

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено anonymous , 11-Авг-11 09:03 
> Спасибо, интересная библиотека, приму на заметку :)

на здоровье. использую много лет, очень доволен, стррррашных багов не видел. жаль, что все знают про pcre, и почти никто — про tre. по мере сил способствую, так сказать.


"В рамках проекта Glark развивается альтернатива Grep"
Отправлено kgx , 11-Авг-11 09:36 
для того, чтобы скипать часть файла есть tail и head, накойхрен это в утилиту поиска вструмлять? каждая программа должна заниматься своим делом, но хорошо. а для чуть более сложных - можно уже и awk с perl использовать.

"В рамках проекта Glark развивается альтернатива Grep"
Отправлено redwolf , 11-Авг-11 16:04 
"каждая программа должна заниматься своим делом"

Это unix-way. Не все его понимают. Смиритесь )