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

Исходное сообщение
"Опубликована утилита ugrep 5.0 для расширенного поиска в файлах"

Отправлено opennews , 18-Фев-24 13:22 
Состоялся выпуск проекта ugrep 5.0, развивающего продвинутый вариант утилиты grep для поиска данных в файлах. Дополнительно поставляется интерактивная оболочка ug с интерфейсом пользователя, предоставляющим предпросмотр окружающих строк.  По производительности ugrep  в разы опережает grep. Код проекта написан на языке С++ и распространяется под лицензией BSD...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60622


Содержание

Сообщения в этом обсуждении
"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 13:22 
Серьёзный вопрос - оно лучше ripgrep? Просто как-то сомневаюсь.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено амоним , 18-Фев-24 13:27 
ты нипанимаишь - ripgrep, пусть и лучше, но на расте. а это тупик для анонов. им надо с сишкой только.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 13:30 
А чем оно лучше? Синтаксис регулярок свой собственный, обглоданный и ни с чем не совместимый, постоянно падает, пытается читать сразу несколько файлов и тормозит.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 05:52 
> А чем оно лучше? Синтаксис регулярок свой собственный, обглоданный и ни с
> чем не совместимый, постоянно падает, пытается читать сразу несколько файлов и тормозит.

Ну так они и назвали его rip намекая на перспективы проекта. Провиды бывают даже среди хрустиков :)


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено амоним , 18-Фев-24 13:28 
+ готов поспорить, что оно на 0.00000001% быстрее чем ripgrep

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 13:29 
Если верить тестам, то ugrep быстрее:

search          -n     -no     -wn     -win     -wino     -c     -wic     -l     -wil
ugrep   0.03     0.03     0.03     0.03     0.03     0.03     0.02     0.03     0.00     0.01
rg      0.03     0.04     0.03     0.05     0.05     0.06     0.03     0.05     0.00     0.02
ag      0.69     0.66     0.40     0.35     0.35     0.35     0.10     0.10     0.10     0.10
ggrep   0.11     0.13     0.15     0.15     0.53     0.53     0.11     0.51     0.00     0.08


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 14:03 
По тестам и мюсли у авторов быстрее. Я проверял, на практике, рип не более чем на несколько процентов быстрее гну греп -- всё в пределах погрешности в итоге, но, при этом, это жалкий огрызок не являющийся заменой и сравнение даже не было равноценным. Ну и, всё же, чтобы засегфолтить гну греп придётся ещё попотеть.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 14:15 
> не более чем на несколько процентов

```
% du -hs .
242M    .
% time grep --color=auto -R test 2>&1 > /dev/null
0,11s user 0,51s system 97% cpu 0,630 total
% time rg -uuu test 2>&1 > /dev/null
0,17s user 0,64s system 718% cpu 0,113 total
```

Да, всего-то на каких-то 500% быстрее. Спасибо многопоточности.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 14:19 
Это не равноценно. Если сравнивать в 1 поток (единственное практическое применение) и с регулярками, то всё не так замечательно.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 14:20 
И зачем нужно страдать, используя его в 1 поток?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:03 
А с какого рожна сравнение должно быть равноценным?! Типа сравнивая болид F1 с Москвичем у болида надо движок поменять и шины сдуть?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:09 
Тут скорее Ока сравнивается с Мерседесом. Конечно, глупо сравнивать 1 в 1, если возможности и применения разные, но хотелось бы видеть сравнения в том, в чём они выполняют одни и те же функции. И да, Ока ржавая.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 15:16 
Ржавая Ока и Мерседес с одинаковой скоростью стоят в пробке. Стоит ли переплачивать?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:20 
> Ржавая Ока и Мерседес с одинаковой скоростью стоят в пробке. Стоит ли
> переплачивать?

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


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено rvs2016 , 19-Фев-24 00:52 
> Имхо, Ока ломается чаще

Ремонт Мерседеса - дороже.
Это уже 2-я переплата за него.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 12:29 
А с жизнью в Оке расстаться проще.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено barmaglot , 18-Фев-24 19:18 
Это не только не равноценно, сравнивать прогретый кэш ФС с не прогретым, так ещё и считать не умеет: разница около 100мс , прибавка к производительности ~20% и при этом 8-ми кратное использование ЦПУ у рг. Ну г. как г. ...

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 19:27 
>> 0,630 total
>> 0,113 total
> так ещё и считать не умеет: разница около 100мс , прибавка к производительности ~20% и
>> 97%
>> 718%
> при этом 8-ми кратное использование ЦПУ у

Сразу виден старый, заслуженный Ветеран-Воен Супротив Раста - забросил в свое время школу, дабы посвятить себя всего защите Земли (и Вселенной) от Ржавой Угрозы!

Правда, это постоянно аукается ...


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 19:32 
Ага, эти подделают любые тесты лишь бы своего любимчика выгородить. Не раз уже пойманы за руку)

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено barmaglot , 19-Фев-24 14:51 
Ага, 3.14здеть,  не мешки  ворочать.

Ответ был на вот этот коммент:
'''
% du -hs .
242M .
% time grep --color=auto -R test 2>&1 > /dev/null
0,11s user 0,51s system 97% cpu 0,630 total
% time rg -uuu test 2>&1 > /dev/null
0,17s user 0,64s system 718% cpu 0,113 total
'''

гг: 0.11с юзер тайм + 0.51с систем тайм = 0.62с
рг: 0.17с юзер тайм + 0.64с систем тайм = 0.81с

рг на 23.45% медленнее. И жрёт 718% цпу, при этом тотал оказался 0.113 :):):):):) это каким идиотом нужно быть, чтоб подобние публиковать?


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено barmaglot , 18-Фев-24 19:14 
Герой, поиск по файловой системе замерил :) И рип запустил вторым на прогретом кэше.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 14:16 
Не знаю как ты тестил, у меня на стандартных задачах rg в 2-10 раз быстрее гнугрепа.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 14:22 
Полноценно тестил. Когда хотел ускорить поиск по дереву исходников. Быстрее он только когда есть быстрый случайный доступ. А это не то, что стоит замерять. Вообще, моя главная претензия это низкая надёжность и непредсказуемость.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:06 
Да уже поняли, что ты тестил rg в 1 поток. Хочешь реального прироста - юзай все возможности. Смысл rg в его фичах, а не в том, что там какая-то особая раст-магия, которая делает его быстрее.

Что касается надёжности - хз, года 2 как перешёл с грепа (в том числе в скриптах), проблем не видел.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:12 
Когда я тестил не в 1 поток, гну греп ушёл вперёд с большим отрывом, а рип работал в разы дольше целиком забивая io.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 15:33 
А можно поподробней? На какой версии, с какими ключами, с какими регулярками и на каком наборе файлов проходило исследование? Может, всплыл какой-то специфический баг, который могли и починить уже.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 15:36 
Полагаю, дело было в iowait. А когда крашилось, это определённо баги, но мне не настолько интересно.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 15:53 
Года за 4 использования не сталкивался ни с крашами, ни с лагами, хотя и длинные сложные регулярки не писал.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 16:01 
Странно, я столкнулся в первую же неделю. Правда, и регулярки у меня специфические, а у раста свой наколенный диалект со своими глюками. Но там была зависимость от данных, не каждый файл триггерил, а это явно не дело. Миллионы раз за день вызывается же и нельзя работать только на идеальных, вручную подготовленных данных. В частности, там по-моему были приколы с символом возврата каретки. Как можно не заметить iowait, я не представляю.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:29 
Где тесты, мань? Где багрепорты? Может хватит врать?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:42 
Мне, в общем-то, всё равно что там фанатки ржавого думают, я уже несколько раз собирал эту дрянь и тратил время, больше не собираюсь. Это определённо самая паршивая программа на ржавчине из существующих.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 23:54 
> Это определённо самая паршивая программа на ржавчине из существующих.

Остальные ещё не лучше.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 17:21 
Да очевидно чел просто врёт, потому что очень нравится греп)



"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Голум , 18-Фев-24 17:36 
Сам посравнивал, в некоторых условиях в пайпе rg получался до 20% медленнее гнугрепа, а сабж – до 50%.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:30 
Пруфы, конечно же, никто и не думал предоставлять (с) Каневский

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 21-Фев-24 16:59 
А потом "Ваши пруфы - не пруфы"(c)

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 17:05 
У тебя там одноядерный процессор и IDE-диск что ли? Рипгреп для солидных господ с многоядерными системами и NVME.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 17:20 
Ну это просто ложь. Даже в этом треде есть выхлопы. Зачем вводить в заблуждение? Каждый же легко может проверить

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 17:24 
В том и пертрушка, что любой может убедиться в правдивости. А если не получилось, тут повод задуматься о смене профессии на более подходящую способностям.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:33 
Конечно задумайся. Без пруфов приходить к технарям врать - это достойно настоящего гуманитария. РГГУ, держись, идёт подмога.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:49 
> Конечно задумайся. Без пруфов приходить к технарям врать - это достойно настоящего
> гуманитария. РГГУ, держись, идёт подмога.

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


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 12:36 
Тебе уже попытались намекнуть, что всё зависит от условий:
1. Типа носителя. Для SSD в общем случае фрагментированность не играет никакой роли.
2. Наличие файла в кеше.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 13:22 
С какой целью кто-то будет намекать очевидное? Вообще, ты ошибаешься, фрагментированность тут не при чём (попробуй найди ещё такой фрагментированный файл), однако, она значительно просаживает производительность чтения, в том числе на ссд (при чём тут вообще ссд, кстати?), поскольку случайное чтение и так очень неэффективное (а данные размазаны по носителю), и уж когда оно параллельное тут прелести во всей красе вылезают. Про кэши глупость какая-то, пожалуй, оставлю без комментариев.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено User , 19-Фев-24 12:54 
А "стандартные задачи" это что?
У меня - ну вот выхлоп stdout отфильтровать - уже даже в логи заглянуть задача все более "не стандартная" да и... и примерно все, наверное.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Пользователь планеты Земля , 18-Фев-24 14:14 
я так понимаю для "правильных" тестов нужно знать правильный набор флагов ?
для себя провёл простой тест "без всяких", просто найти слово rust
для более релевантного ответа трижды прогрел(запустил) тест и вывел самый последний.
релевантного потому что при первом тесте ugrep сильно задумался на десяток секунд в то время как ripgrep был быстр с первого же теста.

$ time ug rust
...
________________________________________________________
Executed in    3.12 secs    fish           external
   usr time    8.72 secs  297.00 micros    8.72 secs
   sys time    2.04 secs    0.00 micros    2.04 secs


$ time rg rust
...
________________________________________________________
Executed in   23.43 millis    fish           external
   usr time   36.95 millis  261.00 micros   36.69 millis
   sys time   40.13 millis   77.00 micros   40.05 millis


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Заноним , 18-Фев-24 17:37 
"Какие-то неправильные у вас гуси":

$ time grep -R xml ./kitchen 1>/dev/null 2>/dev/null
cpu=99% user=0.053 system=0.495 total=0.550

$ time ug -R xml ./kitchen 1>/dev/null 2>/dev/null
cpu=92% user=0.001 system=0.002 total=0.003

$ time rg xml ./kitchen 1>/dev/null 2>/dev/null  
cpu=1142% user=0.238 system=1.508 total=0.153


Но ugrep из блэкджеком:
$ grep -R xml ./kitchen 2>/dev/null | wc -l
63474

$ ugrep -R xml ./kitchen 2>/dev/null | wc -l
63468

$ rg xml ./kitchen 2>/dev/null | wc -l
63474



"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Заноним , 18-Фев-24 17:55 
А вообще, какая-то дичь в ugrep:

$ time ug -R xml ./kitchen 2>/dev/null | wc -l    
63468
cpu=475% user=0.605 system=2.352 total=0.621
cpu=27% user=0.023 system=0.147 total=0.621

$ time ugrep -R xml ./kitchen 2>/dev/null | wc -l
63468
cpu=968% user=0.331 system=1.196 total=0.158
cpu=48% user=0.010 system=0.066 total=0.157


$ pacman -Qo $(which ugrep)
/usr/bin/ugrep is owned by ugrep 5.0.0-1

$ pacman -Qo $(which ug)  
/usr/bin/ug is owned by ugrep 5.0.0-1

$ sha256sum $(which ug)
84ba767400753ac772df0d87c08f9f5e8e127ec3df1ab3f9367662e1e23a10da  /usr/bin/ug

$ sha256sum $(which ugrep)
f99d9cca69c3846141dad581baf2bad240614490834471b556cffa6e976e929a  /usr/bin/ugrep


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Пользователь планеты Земля , 18-Фев-24 18:17 
там вообще 4 утилиты, наверное для разных задач
$ pacman -Ql ugrep
...
ugrep /usr/bin/ug
ugrep /usr/bin/ug+
ugrep /usr/bin/ugrep
ugrep /usr/bin/ugrep+

по поводу "неправильных гусей", даже если искать в одном файле у меня всё равно rg быстрее
$ time rg json .bash_history 1>/dev/null 2>/dev/null

________________________________________________________
Executed in    2.18 millis    fish           external
   usr time    0.38 millis  384.00 micros    0.00 millis
   sys time    1.84 millis    0.00 micros    1.84 millis

$ time ug -R json .bash_history 1>/dev/null 2>/dev/null

________________________________________________________
Executed in    3.01 millis    fish           external
   usr time    2.73 millis    0.00 micros    2.73 millis
   sys time    0.32 millis  324.00 micros    0.00 millis


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено barmaglot , 18-Фев-24 19:24 
Вот как тестировать нужно. рг самый быстрый, т.к. его просто нет! Неуловимый Джо!
[~/test]
> time egrep -R "^test" . >/dev/null 2>&1

real    0m6.464s
user    0m3.913s
sys    0m2.308s

[~/test]
> time egrep -R "^test" . >/dev/null 2>&1

real    0m5.858s
user    0m3.870s
sys    0m1.935s

[~/test]
> time egrep -R "^test" . >/dev/null 2>&1

real    0m5.835s
user    0m3.875s
sys    0m1.907s

[~/test]
> time ug -R "^test" . >/dev/null 2>&1

real    0m1.891s
user    0m0.641s
sys    0m1.228s

[~/test]
> time rg -R "^test" . >/dev/null 2>&1

real    0m0.001s
user    0m0.001s
sys    0m0.000s

[~/test]
> which rg

which: no rg in (...)

[~/test]
> which ug

/usr/bin/ug


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 18:25 
> для себя провёл простой тест "без всяких", просто найти слово rust

Соревнование по дефолтной агрессивности флагов?
Пришлите мне тестовую директорию, соберу утилитку которая обгонит любого конкурента, тестовую директорию и запрос не менять ;)


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Пользователь планеты Земля , 18-Фев-24 19:09 
> Соревнование по дефолтной агрессивности флагов?

нет, просто эмуляция того что например через пару недель мне вдруг нужно будет найти файл где упоминается определённое слово или словосочетание, а это сценарий в 98% случаев, так вот то что вы называете "дефолтная агрессивность флагов" я, да и большинство думаю согласятся, в данном случае, можно назвать разумным выбором дефолтных флагов автором программы. Как по мне, в таких случаях, проще добавить недостающие флаги чем убавить лишние.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено rvs2016 , 19-Фев-24 00:47 
> Серьёзный вопрос - оно лучше ripgrep?

В работе с кодировками - лучше.

ripgrep не обрабатывает шаблоны, содержащие русские буковки:

% rg -i эмулятор *
found invalid UTF-8 in pattern at byte offset 0: \xDC\xCD\xD5\xCC\xD1\xD4\xCF\xD2 (disable Unicode mode and use hex escape sequences to match arbitrary bytes in a pattern, e.g., '(?-u)\xFF')
У меня терминал не utfный, а koi8й.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 12:48 
> У меня терминал не utfный, а koi8й.

Серьезно?
Я думал такие индивидуумы вымерли еще лет 10 назад.
Ну уж простите что современный софт не пишется с поддержкой старого хлама.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено pavlinux , 19-Фев-24 14:02 
> Ну уж простите что современный софт не пишется с поддержкой старого хлама.

Современный софт пишет вот такая же школота как ты. Между KOI8 (любой) и UTF8/16/32/LE/BE
есть таблицы сопоставления,  но такие говнокодеры из тиктока не вдупляют про библиотеку icov


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 11:19 
> ripgrep не обрабатывает шаблоны, содержащие русские буковки:

Да при чём тут "русские буковки", когда у тебя:

> терминал не utfный, а koi8й.

Год сейчас уже 2024-й.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено morphe , 20-Фев-24 13:58 
> У меня терминал не utfный, а koi8й.

Вот он и сказал что ты дал ему на вход не utf-8, а набор байт (у ripgrep 2 режима - unicode и bytes, у других грепов обычно только bytes), и предложил как можно выключить utf-8 mode (= перейти в режим bytes) для работы с этим


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 13:55 
Ripgrep круче и удобней, а это просто тот же grep, но быстрый и на крестах. Не понял зачем оно нужно для моих задач.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Anonimus , 18-Фев-24 14:48 
Не пользуйся

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 18:22 
Не знаю как с ugrep, но вот чем rg не удобный:
1) Многие символы в начале шаблона поиска надо экранировать '\{' '\-'
2) Сильно урезанные регулярки без lookahead/lookbehind (имхо, одна из главных фич регуярок)
3) Не то чтобы стабильный, в некоторых версиях например не работал поиск по glob'ам, а для rg это ключевая фича для поиска по файлам с определенным именем

Не стал записывать в минусы, но скорость rg достигается в основном агрессивными флагами, с -uuu он уже поскромнее. А без -uuu не ищет в .gitignore (ок, не всегда нужно), дотфайлах (это уже критично и про это надо вспомнить), бинарных файлах (мне некритично)


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 18:47 
Всё так. Rg при _вдумчивом_ применении рвёт аналоги просто на порядки. Ugrep такой же как grep, но прост побыстрей. Для себя пробовал юзать grep, ugrep, rg в параллели - понял что в целом rg удобней.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 19:10 
Он даже запускается дольше.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 19:17 
Кто?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 21-Фев-24 17:07 
>Сильно урезанные регулярки

Уже одного этого достаточно чтобы всерьез не рассматривать ripgrep в принципе.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 23-Фев-24 08:59 
> Ripgrep круче и удобней, а это просто тот же grep, но быстрый и на крестах. Не понял зачем оно нужно для моих задач.

Лично у меня не получилось искать в *.docx с помощью ripgrep, но получилось с ugrep. Допускаю, что дело во мне, потому готов посмотреть на набор ключей от аксакалов рипгрепа, которые покажут как надо.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Пользователь планеты Земля , 18-Фев-24 13:56 
я так понимаю это что-то типа [ ripgrep-all + fzf ] в одном флаконе, но по фичам всё же до них не дотягивает ибо ripgrep-all поддерживает больше форматов а fzf имеет больше возможностей. В общем очередной комбайн.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:00 
Работать с такой утилитой учиться надо. Однострочник на перле будет короче и примерно в сто раз понятнее, чем мантры нестандартных флажков. Для большинства ситуаций можно обойтись rgrep | xargs sed. Люди не учат базовые юниксовые вещи, не понимают, что так можно.

>написан на языке С++
>распространяется под лицензией BSD

Шаблон порвал automake в качестве сборочной системы. Ожидал cmake или meson.
>ug

С названием утилиты зато все хорошо.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 18-Фев-24 23:37 
О, а вы, я погляжу, юникс ветеран? Ну давайте сравним юниксовый grep/sed с гнутым. Какой из юниксов возьмём?) Я бы предложил digital unix, да помер он 15 лет назад.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 13:20 
Совершенно не обязательно быть ветераном и с 80х годов пользоваться юниксами, чтобы использовать мощь юниксового подхода. Я очень редко админил фряху, но жил всегда на линуксе, так что никаким ветераном юникса не являюсь.
Юникс - это прежде всего мышление и подходы.
Как большинство пользует стандартные утилитки? В основном, копируя готовые "команды". Тогда как настоящая мощь в том, чтобы писать программу под каждую идею. Шелл, сед, авк, перл - куча вариантов. 95% сисадминов на это не способны, потому что предпочитают не вылезать из окошек, не хотят мыслить потоками данных, их фильтрами, трансформациями, перенаправлениями. Хотят императивно перебирать "сущности", писать условия (расставлять флажки). Инстинктивно понятная любой обезьяне деятельность.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено AKTEON , 19-Фев-24 23:37 
Вот-вот. У нас один сотрутник таскает  awk в windows

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено rvs2016 , 19-Фев-24 00:33 
> неточный поиск (fuzzy)

Это как? 🤔


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 01:20 
Когда ты ищешь, к примеру, "каледор", но поиск выдаёт так же и правильное "коридор". Т.е. выдаёт слова, ПОХОЖИЕ на искомое.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено pavlinux , 19-Фев-24 12:32 
Княжество Каледор − место, где находится Кузница Ваула, самый яростный из всех вулканов Ултуана.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Quad Romb , 19-Фев-24 20:08 
Наверное, выдать результаты отличающиеся на несколько символов от заданной маски и/или образца.
Документацию не читал, сразу честно признаюсь.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 21-Фев-24 09:38 
Позволяет находить результаты, отличающиеся от заданного образца на заданное число символов (по  умолчанию на 1):
то есть найдет как заданный образец, так и варианты, где на 1 символ больше, на один символ меньше или один из символов отличается. Количестве символов различия можно задать (а заодно и варианты какие именно отличия нужны - например только если символ лишний или только если n символов отличается).

с этм ключем в его виде по-умолчанию (различие в 1 символ):
при поиске "test" найдет и, собственно, "test" и "test1", "te2st", "2test", "tst", "est", "tes", "t3st", "nest".

Удобно, например, если ожидаете, что слово может оказаться написанным с ошибкой или опечаткой и в некоторых других сценариях.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено rvs2016 , 19-Фев-24 00:35 
> вложенный поиск,

И это как? 🤔

> перекодирование текстовых кодировок

Кодировки из какого набора?
Из iconv --list?


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 01:46 
Вложенный - видимо, поиск в результатах. Скажем, ищешь строку, где есть коммент "//TODO", а потом среди тудушек ищешь задачу со словом update. Это ЕСЛИ вложенный поиск идёт в найденой строке. А учитывая туnую логику автора, он может искать и чисто в файле!

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 01:43 
Сразу видно, утилиту писал линynсоидный "юзабилист" (в кавычках, потому что самый отстойный юзабилист на планете).

Это утилита ПОИСКА. А значит должна работать по-умолчанию с максимально юзабельными флагами. Что это такое - автору ugrep неизвестно, поэтому сразу же наляпал дерьма в дефолтовых значениях:

1. РегистроЗАВИСИМЫЙ поиск. Чегобл?!?! Вы серьёзно предлагаете мне учить и вытаптывать на клаве все регистры (будто я их помню) ?! Я только помню openfile, я почём знаю, какие там буквы верхние? Факап.

2. По какой-то туnой логике автор думает, что у всех один каталог со всеми сорсами и он там ищет. А ничего, что есть ВЛОЖЕННЫЕ каталоги, в которых утилита НЕ ищет?! Де6илизм...

3. Нет вывода номера строки. Этот клоун что думает, я нашёл файл чисто "поглазеть на имя"? Мне и строка нужна! Мне некогда шароёпиться по файлу и искать, где он там нашёл совпадение.


Понимаю, клаводр0черы сразу же предложат "создать батник", но... зачем создавать батник, если можно сразу сделать по-человечески?! Что за наплевательское отношение к людям? Или он думает, что скопировал г:::но 40-летней давности (grep), значит и все порочные практики надо тоже сюда тащить?! Нет уж, жрите сами.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 01:58 
Ну и ещё по этому юзабиласту: запуск в венде с -Q выдал:

[mugrep:  [1;31mno ANSI terminal keyboard detected [m


Ну да, ну да, пошли мы нафиг, юзеры оффтопика :)


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 08:08 
> Ну да, ну да, пошли мы нафиг, юзеры оффтопика

Всё правильно.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Вы забыли заполнить поле Name , 19-Фев-24 02:04 
По-поводу 1 2 3 - это дефолты в grep.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 10:09 
Думаешь, ему есть какое-то дело до вопросов совместимости, и чтобы скрипты не ломались?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Вы забыли заполнить поле Name , 20-Фев-24 00:43 
> Думаешь, ему есть какое-то дело до вопросов совместимости, и чтобы скрипты не
> ломались?

Очевидно, да.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:24 
Причём тут вообще совместимость?! ugrep - это НОВАЯ утилита. Да, "по мотивам" старого grep, но написана-то она в 21 веке! Уж наверное если кто-то заморочился написать ЕЩЁ ОДНУ искалку, то она совсем не обязательно должна быть совместимая. Желательно, но не обязательно. ТЕМ БОЛЕЕ, что если у тебя тыщща "скриптов", нафига тебе ugrep?! Юзай старую, СОВМЕСТИМУЮ grep, делов-то! А вот для новых практик "пальцетыканья в консоли" утилита должна предоставлять максимально краткий синтаксис и максимально удобные дефолты.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 12:52 
> По-поводу 1 2 3 - это дефолты в grep.

Т.е. если какие-то долбояшщеры 100500 лет назад приняли тупейшее решение...
то мы должны тянуть это годами "патамушта диды завещали не ломать обратную совместимость"???
И в этом весь линукс... Не дай бог сломать скриптик какого-то неосилятора исправить!


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено User , 19-Фев-24 16:53 
Ну, вы ж дохреналлион баш-портянок за нас всех переписывать не пойдете? С появлением systemd их количество несколько снизилось с а(х)фиглиарда до всего лишь дохреналлиона - но наткнуться мизинцем-об-табуретку когда какой-то пионЭр в centos'е 8 "поменял" родной-немодный grep на вот новый ripgrep - было нифига не прикольно.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:28 
А кто вообще вас заставляет менять grep на ugrep!??!?! Нужны скрипты - сидите на протухшем grep, он всё равно всегда есть в системе. Но для работы, для БЫСТРОГО поиска файлов, сделали ugrep, которой вообще не обязательно быть совместимой с grep. Не настолько "диды" были умные, делая умолчания для grep. И ugrep может (и должен) исправить эту порочную практику. Пункты я указал, АРГУМЕНТЫ против имеются? (кроме остоnи3девшей мантры "совместимость с тухлым прошлым")

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено User , 20-Фев-24 07:43 
> А кто вообще вас заставляет менять grep на ugrep!??!?! Нужны скрипты -
> сидите на протухшем grep, он всё равно всегда есть в системе.
> Но для работы, для БЫСТРОГО поиска файлов, сделали ugrep, которой вообще
> не обязательно быть совместимой с grep. Не настолько "диды" были умные,
> делая умолчания для grep. И ugrep может (и должен) исправить эту
> порочную практику. Пункты я указал, АРГУМЕНТЫ против имеются? (кроме остоnи3девшей мантры
> "совместимость с тухлым прошлым")

1. Меня - никто не заставляет, но у пионЭров периодически че-шет-ся.
2. Собственно, называйся оно какой-нибудь bystroye_iskalko - ваще без вопросов. Но ассоциировать себя с grep'ом будучи при этом чуть-чуть, самую капельку, малость - "не таким"... осуждаем, решительно осуждаем. Фу таким быть!
3. As for me - интерактивное грепование по кучам мусора на боевых серверах все больше-и-дальше уходит в область "славного прошлого"-туды-ему-и-дорога, а вот кривая-косая-горбатая скриптота с нами, увы, примерно "навсегда". Поиск по электронной почте? По адресной книге\контактам? По пачке docx\pdf? По имени файла, раз уж "по содержимому" мы ниалё? Неее, ребят - со всем этим вам не сюда. Сколько-нибудь осмысленный (Не "переменная Х_Е_Р", а find usages\goto definition хотя бы) поиск по проекту? Опять мимо. Логи греповать? Так эластик или там какой loki тупо удобней в современных окружениях. Локально на сервере? Ну, там где это осмысленно - journalctl тупо быстрее, да еще и позволяет серверу в этот момент делать что-нибудь полезное, а не только "греповать-в-цать-потоков". Есть задачи, где\когда grep все еще нужен\удобен - но для меня они настолько "разовые", что на скорость\"удобство"  примерно покласть - не стоит того, чтобы переучиваться.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Вы забыли заполнить поле Name , 20-Фев-24 00:39 
>> По-поводу 1 2 3 - это дефолты в grep.
> Т.е. если какие-то долбояшщеры 100500 лет назад приняли тупейшее решение...

С чего вдруг?

1. По умолчанию поиск ищет соответствие шаблону. Я бы ожидал регистрозависимого поиска.
2. Рекурсивный поиск - более трудоемкая задача. Проведи аналогии с яп, где deepcopy никогда не применяется по умолчанию.
3. Чаще всего нужен результат, чтобы его передать на вход другой команде.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:16 
1. Объясни, ЗАЧЕМ тебе "регистрозависимый поиск". Ты что, боишься найти "машу" вместо "Маши"?? Это не праздный вопрос, просто хочу поглядеть, ты просто усираешься над защитой "дидов" или у тебя есть реальные причины.

2. На компьютере вообще ВСЁ трудоёмкое! От декодирования JPEG до записи файла в служебные таблицы ФС. И что теперь - работать на "отъявись"? Если я докатился до ПОИСКА, значит очевидно, что я НЕ ЗНАЮ, где мой файл! А учитывая иерархии, даже как-то глупо объяснять школотронам, что поиск ВГЛУБЬ нужен как воздух. ОСОБЕННО если это сорсы.

3. Не натягивай личные практики на общие утилиты. Grep - это grep, это ПОИСК. Забыл где конфиг - грепанул и нашёл, причём тут "вход другой команды"? _Я_, человек, занимаюсь поиском, потому что мне нужно найти файл.

Итого, вижу полный и глупый антагонизм моим замечаниям "лишь бы по_с_раться". Логику ЧЕЛОВЕЧЕСКУЮ примени и сразу удивишься, насколько чужероден мир линукса внешнему обывателю.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Серб , 20-Фев-24 13:02 
1. Очевидно, что практика программирования и конфигурирования показывает сильную разницу между поиском, например host и Host. Насколько я могу судить в винде не так. Но кого это волнует.
2. Для поиска вглубь есть find который ищет файлы по куче условий. А вот уже список файлов можно использовать для grep.
3. При том, что для быстрого поиска по файлам используются специальные сервисы, которые хранят индексы для файлов для быстрого поиска.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Серб , 20-Фев-24 13:22 
Добавлю простенький пример:

find ./ \( -name "*.cpp" -or -name "*.hpp" \) ! -name moc_* -exec grep -H File {} \;


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:08 
Ну ты мне прямо глаза открыл! :)) А ничего, что эти "дефолты" придумывали люди с ограниченным умишком и 40 лет назад?! Время идёт, практики меняются, совершенствуются. То, что в 197* казалось очевидным, в 202* уже кажется смешным. Если уж вы делаете утилиту для НАБОРА ПАЛЬЦАМИ В КОНСОЛИ, неужели нельзя сделать дефолты максимально юзабельными?! Чтобы мне требовалось набрать ТОЛЬКО "ug подстрока" и ВСЁ!
Очевидно же, что чем меньше надо указывать флагов, тем быстрее работа.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено User , 19-Фев-24 16:50 
Ну, персонально _я_ предполагаю, что по исходникам имеет смысл искать с помощью _ide_, а не прикручивать к чему-то-там "фигню сорокалетней давности" в попытках эту самую IDE получить.
А вот для работы уже готовых скрЫптов Эн-летней давности стабильность "воооон тооой фигни" важна-и-нужна.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:21 
Бывает, задача не только в сорсах! Например, ты забыл, какой вебсайт у тебя на порту 8080. Грепанул - вот тебе конфиг! И чем меньше надо указывать флагов в консоли, тем лучше - вот моя претензия.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено User , 20-Фев-24 07:53 
> Бывает, задача не только в сорсах! Например, ты забыл, какой вебсайт у
> тебя на порту 8080. Грепанул - вот тебе конфиг! И чем
> меньше надо указывать флагов в консоли, тем лучше - вот моя
> претензия.

Эм. Ну... "А НАХРЕНА?"
Вот чот даже как-то и сообразить не могу, в каком случае у меня на одном сервере может завестись пачка сайтов на разных портах и нахрена мне при этом выяснять их принадлежность именно "от порта", причем делать это достаточно часто, чтобы имело смысл букАвы экономить?


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:33 
Ещё один косяк:
По старой юниксоидной привычке автор режет файл по '\n'. В венде же (для которой ugrep тоже скомпилен) принято окончание '\r\n'. Соотв. когда утилита выдаёт JSON-вывод, ВСЕ файлы имеют на конце мусорный '\r' - спасибо, рук0*опы, что кладёте болт на стандарты в ОС!

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 03:50 
Нашли с чем сравнить по скорости - с grep. Академический пример из всех книг по Perl - однострочный скрипт работает быстрее, чем компилированный grep.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Sw00p aka Jerom , 19-Фев-24 08:55 
а смысл сравнивать, если все упирается в IO, ищем ведь один раз, и этот раз - всегда будет медленным внезависимости как назвать Г или УГ или РГ :)

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Golangdev , 19-Фев-24 08:56 
Нихрена оно по .docx не ищет.

Не нужно.


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 11:14 
По docx искать нужно сервер поиска ставить под венду.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 19:19 
С какого перепугу? *.Docx - это всего лишь зипованный XML. Его можно обрабатывать и на Linux и на Windows. Не путать с бинарным форматом *.Doc.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 04:55 
К слову, ugrep УЖЕ УМЕЕТ искать в архивах, так что всё, что ему нужно - как-то "просеивать" теги ворда и выводить текст.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 21-Фев-24 09:46 
Нужно флаг работы с сжатыми файлами добавить - тогда впринципе ищет (напоминаю, что docx - это куча запакованных в основном xml'ек).

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 19-Фев-24 11:15 
Как поставить одной командой?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено mos87 , 19-Фев-24 13:36 
ag уже не моден как погляжу? стОит с него переползать на сабж?

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 21-Фев-24 17:18 
Если ты при выборе рабочих инструментов руководствуешься "модой" у меня для тебя плохие новости.

"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 05:00 
Если кому интересно, слепил WPF-прогу - враппер для ugrep:

https://ic.pics.livejournal.com/thornik/956427/117679/117679...


"Опубликована утилита ugrep 5.0 для расширенного поиска в фай..."
Отправлено Аноним , 20-Фев-24 11:17 
> WPF

Зaкoпaй это обратно, где взял.