The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск утилиты GNU grep 3.1

04.07.2017 09:11

Представлен выпуск утилиты для организации поиска данных в текстовых файлах - GNU Grep 3.1, в котором примерно в 7 раз увеличена производительность обработки масок '[0-9]' при использовании многобайтовых локалей.

Кроме того, опция "-m" (прекратить чтение файла после N совпадений) отныне не влияет на вывод дополнительных строк контекста, число которых задаётся опцией "-A" (показать N строк, идущих после совпадения). Например, команда 'grep "^" -m1 -A1' теперь приведёт к выводу двух строк - одного совпадения и следующей за ним строки, а не одной как раньше. На платформе Windows опция "--binary" (-U) теперь включает ввод/вывод в режиме обработки бинарных данных, а опция "--unix-byte-offsets" (-u) игнорируется.

  1. Главная ссылка к новости (http://www.mail-archive.com/in...)
  2. OpenNews: Выпуск утилиты GNU grep 3.0
  3. OpenNews: Выпуск GNU grep 2.26
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46804-grep
Ключевые слова: grep
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (68) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:13, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Ждем улучшенной версии grepd
     
     
  • 2.12, Аноним (-), 12:40, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    не улучшенной, а Правильной, от Великого Нечитателя манов
     

  • 1.2, A.Stahl (ok), 09:21, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    >увеличена производительность

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

     
     
  • 2.4, Аноним (4), 09:27, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что grep ничем уже не заменишь. Linux без grep что стол без ножки.
    Будет хоть 10 крутых замен grep, а пользоваться всё равно будут им же.
     
     
  • 3.5, A.Stahl (ok), 09:45, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ничего не мешает написать какой-то perg на Rust+Lua с нардами и инкассаторшами. Сказать что он безопасней и хипстеры перебегут за пару недель. Но никто не пишет же. А почему? Потому что проект неспешно и адекватно развивается (да, это камень в огород КДЕ-Гномеров)
     
     
  • 4.7, Аноним (-), 10:08, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ничего не мешает написать какой-то perg на Rust

    Уже написано: https://github.com/BurntSushi/ripgrep
    И уже быстрее Grep.

     
     
  • 5.8, Andrey Mitrofanov (?), 11:29, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Уже написано: https://github.com/BurntSushi/ripgrep
    > И уже быстрее Grep.

    Совместимость?...

    Сколько дистрибутивов gnu\linux полностью заменили им GNU grep? А при сборке всех своих пакетов из исходников, например?

    0.0 ?....

    Ох же ж, мы ж опечалены. Работайте лучше.   ...и ещё быстрее!1

     
     
  • 6.35, Аноним (-), 21:30, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Совместимость?...

    Отсутствие сомнстимости позволяет использовать более приятный синтаксис. Но да, делает эту штуку малополезной в скриптах.

     
  • 5.14, rshadow (ok), 14:33, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Таких уже дофига было. Только быстрее оно в определенных случаях: на очень маленьких/больших текстах/шаблонах. А в среднем по скорости и переносимости хуже.
     
     
  • 6.30, лютый жабист__ (?), 20:34, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Таких уже дофига было. Только быстрее оно в определенных случаях: на очень
    > маленьких/больших текстах/шаблонах. А в среднем по скорости и переносимости хуже.

    Победитель по принципу "среднее по больнице" это значит ни в чём не хорош. А ИТ развивается в направлении узкой специализации. Например вместо обсолютно одинаковых по ТТХ mysql/postgres/oracle пришли разные НОСКЛ и унесли 80% рынка. С ЯП так же, появилось множество языков со своей нишей и унесли 95% задач у мощной сишечки.

    p.s. Что лучше, прога которая час занимает 2.5ГБ ОЗУ и 1 ядро на 100% или другая, которая ест 8ГБ на 5 секунд? 8))))

     
     
  • 7.32, Аноним (-), 20:46, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    а когда этих 8ГБ нет, прога просто падает не выполняя свою задачу
     
     
  • 8.33, лютый жабист__ (?), 21:09, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    grep сишный через час выпал в OOM на сервере с 96ГБ ОЗУ ... текст свёрнут, показать
     
     
  • 9.36, Аноним (-), 22:29, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну значит очень тупая попытка использования утилиты Я на 146 уверен что дело в... текст свёрнут, показать
     
     
  • 10.61, . (?), 06:12, 07/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Оно - жабист У них не руки а лапки Про мозги я их жалости - даже не буду С... текст свёрнут, показать
     
  • 7.40, Led (ok), 23:53, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > p.s. Что лучше, прога которая час занимает 2.5ГБ ОЗУ и 1 ядро
    > на 100% или другая, которая ест 8ГБ на 5 секунд? 8))))

    Что, жаба не только съела память, но и часы остановила?

     
  • 5.44, OramahMaalhur (ok), 01:34, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >the usability of The Silver Searcher (similar to ack) with the raw speed of GNU grep

    погодите, у The Silver Searcher  (ag) вроде же всё в порядке со скоростью?

     
  • 4.29, лютый жабист__ (?), 20:27, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –5 +/
    >Сказать что он безопасней и хипстеры перебегут за пару недель

    Обозвал других хипстерами и сразу почуйствовал прилив крутизны?

    В первую очередь все эти линуховые сишные утильки архитектурно убогие и тормозные, т.к. написаны во времена "640к хватит всем". Делаем чуть что сложнее банального grep -i blabla и приплыли.

    Вот из прямо сейчас очередной факап грепа:

    дано два файла с ОГРН (число 13 символов), в одном 4.5m, в другом 800k строчек. Надо сделать третий файл с содержимым f1 которого нет в f2.

    grep -v -x -f f2 f1 >f3
    съел 2.5ГБ рамы и задумался уже на много минут. Сервак с 12 ядрами, 100ГБ ОЗУ. И чё это грепу дало? В проге нормальной архитектуры это должно делаться за от силы 10 сек, а может и меньше 1.

     
     
  • 5.34, L.P. (?), 21:14, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > grep -v -x -f f2 f1 >f3

    А за хлебом ты тоже на грузовике ездишь?
    man uniq
    man comm

     
  • 5.45, Аноним84701 (ok), 03:16, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > дано два файла с ОГРН (число 13 символов), в одном 4.5m, в другом 800k строчек. Надо сделать третий файл с содержимым f1 которого нет в f2.

    Так как вы не написали, в каком файле сколько строк, сделал для верности:



    % seq 1000000000000 1000005000000|shuf>f1
    % seq 1000003000000 1000009000000|shuf>f2
    head -3 f1 f2 && wc -l f1 f2
    ==> f1 <==
    1000001476233
    1000004330833
    1000001025162

    ==> f2 <==
    1000006027753
    1000007334577
    1000007732550
    5000001 f1
    6000001 f2
    11000002 total



    Т.е. 5м и 6м. Cойдет?
    > grep -v -x -f f2 f1 >f3
    > съел 2.5ГБ рамы и задумался уже на много минут. Сервак с 12 ядрами, 100ГБ ОЗУ. И чё это грепу дало?

    Cервака под рукой нема, есть старенький ноут с i5 (первым еще) и "слегка" поменьше рамы.
    НО! Есть чит, называется "man grep"!
    > -F, --fixed-strings
    >              Interpret PATTERN as a list of fixed strings, separated by  newlines, any of which is to be matched
    >  fgrep is the same as ‘grep -F’.




    % time grep -v -x -F -f f1 f2|wc -l
    4000000
    grep -v -x -F -f f1 f2  16,20s user 0,90s system 99% cpu 17,117 total #1GB ОЗУ
    wc -l  0,56s user 0,04s system 3% cpu 17,023 total

    % time grep -v -x -F -f f2 f1|wc -l
    3000000
    grep -v -x -F -f f2 f1  18,39s user 1,05s system 99% cpu 19,470 total # 1.2GB ОЗУ
    wc -l  0,43s user 0,03s system 2% cpu 19,357 total

    # убираем -х, который тут нужен как рыбе зонтик
    % time grep -v -c -F -f f2 f1      
    3000000
    grep -v -c -F -f f2 f1  15,42s user 0,57s system 99% cpu 16,015 total  # ~700MB озу

    % time awk 'NR==FNR {a[$0];next} !($0 in a){print $0}' f2 f1|wc -l            
    3000000
    awk 'NR==FNR {a[$0];next} !($0 in a){print $0}' f2 f1  11,76s user 0,65s system 99% cpu 12,411 total
    wc -l  0,40s user 0,05s system 3% cpu 12,334 total    #~1ГБ



    > Вот из прямо сейчас очередной факап грепа:

    А может, проблема в прокладке между спинкой стула и монитором? :)

     
  • 5.51, Аноним (-), 20:10, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Надо сделать третий файл с содержимым f1 которого нет в f2.

    Ты grep с join перепутал, у жабистов это бывает.

     
     
  • 6.58, Andrey Mitrofanov (?), 10:39, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Надо сделать третий файл с содержимым f1 которого нет в f2.
    > Ты grep с join перепутал, у жабистов это бывает.

    [CODE]Important: FILE1 and FILE2 must be sorted on the join fields.[/CODE]

    Мы тут стараемся, seq-и shuf[fle]-им, а вы хотите сказать надо было sort-ить?! Неслыханно.  >>?<<

     
  • 3.13, VINRARUS (ok), 13:15, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    sed лучше 8)
     
     
  • 4.24, Аноним (-), 18:44, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Седрик лучше.
     
  • 4.28, angra (ok), 20:02, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну тогда уже perl, который заменяет собой сразу grep, sed, awk, tr, неинтерактивный шелл и кучу других утилит. Другое дело, что для простейших задач команда с grep получается короче, чем однострочник на perl.
     
     
  • 5.38, trolleybus (?), 23:04, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А еще лучше питон
    print( {e for e in open("f1", "r")} - {e for e in open("f2", "r")} )
     
     
  • 6.41, VINRARUS (ok), 00:03, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А я умею на чистом SHELL заменять awk '{print $5}' например:

    gigi()
    {
    read LIST
    NO="$1"
    II=' '
    TORBA=1
    while [ "$NO" != "$TORBA" ]
    do
        LIST="${LIST#*$II}"
        let TORBA++
    done
    echo "${LIST%%$II*}"
    }
    echo "1a 2b 3c 4d 5e 6x 7y 8z" | gigi 5

     
     
  • 7.48, Аноним (-), 10:05, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    #!/bin/bash
    gigi() {
        local A
        read -a A
        echo "${A[$1-1]}"
    }
    echo "1a 2b 3c 4d 5e 6x 7y 8z" | gigi 5
     
     
  • 8.49, VINRARUS (ok), 12:18, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Токо оно в SHELL не работает ... текст свёрнут, показать
     
     
  • 9.50, Andrey Mitrofanov (?), 12:37, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С-с-слабак CODE -1,7 1,9 - bin bash bin sh bibi eval ec... текст свёрнут, показать
     
  • 6.42, angra (ok), 00:16, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    $ python -c 'print( {e for e in open("f1", "r")} - {e for e in open("f2", "r")} ) '
    set(['13\n', '12\n', '45\n'])

    И что этот типа однострочник должен был полезного делать, кроме вывода содержимого перфого файла в извращенном виде? Зачем был нужен второй файл?

    Update: Понял, он читает в память оба файла и выдает строки из первого, которых нет во втором. То бишь соответствует примерно такому однострочнику на perl:

    $ perl -e 'push @ARGV,"f2"; %h=map {$_=>1} <>;push @ARGV,"f1"; print for grep ! $h{$_},<>'

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

     
  • 5.46, Andrey Mitrofanov (?), 06:13, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну тогда уже perl, который заменяет собой сразу grep, sed, awk, tr,

    "Ноги, крылья... Хвост!"  B-)

    $ time awk 'ARGIND==1{x[$0]=1}ARGIND==2&&!($0 in x)' <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l
    4000000

    real    0m17.431s
    user    0m10.712s
    sys     0m0.232s
    $ _

    > задач команда с grep получается короче, чем однострочник на perl.

    $ time grep -vFf <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l
    4000000

    real    0m55.920s
    user    0m50.092s
    sys     0m0.860s
    $ _

    //с s|time|/usr/bin/time -f %e\\t%U\\t%M|,

    16.88   10.36   323256
    4000000

    и

    58.31   49.62   1779584
    4000000

    соответственно.

    %M     Максимальный резидентный размер процесса в течении его выполнения в килобайтах.

     
     
  • 6.53, angra (ok), 02:14, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты процитировал фразы о perl, но при этом зачем-то сравнил grep с awk. Давай сравним с perl и для чистоты эксперимента сделаем на одном и том же наборе данных:


    $ seq 1000000000000 1000005000000|shuf >f1
    $ seq 1000003000000 1000009000000|shuf >f2

    $ /usr/bin/time -f %e\\t%U\\t%M grep -vFf f1 f2 | wc -l
    64.12 62.94 1781788
    4000000


    $ /usr/bin/time -f %e\\t%U\\t%M perl -e 'push @ARGV,"f1"; %h=map {$_=>1} <>;push @ARGV,"f2"; print for grep ! $h{$_},<>' | wc -l
    11.71 10.85 1441532
    4000000

    Ну как бы perl однозначно в плюсе по потреблению ресурсов и это на крайне выгодной для grep задаче.

    С awk сравнить на своей машине не могу, так как при знании perl нет никакого смысла изучать глубоко синтаксис для всех вариантов awk, а твой вариант у меня просто не работает:

    $ awk 'ARGIND==1{x[$0]=1}ARGIND==2&&!($0 in x)' <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l
    0
    $ awk 'ARGIND==1{x[$0]=1}ARGIND==2&&!($0 in x)' f1 f2 | wc -l
    0
    $ awk  -W version
    mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

    compiled limits:
    max NF             32767
    sprintf buffer      1020

     
     
  • 7.54, Аноним (-), 05:00, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну как бы perl однозначно в плюсе по потреблению ресурсов и это
    > на крайне выгодной для grep задаче.

    Странно. grep (2.27) у меня отрабатывает чуть, а gawk (4.1.4) и вовсе в полтора раза быстрее перла (5.24).

    Питонятина для полноты:
    $ python -c 'h=set(open("f1"));import sys;sys.stdout.writelines(l for l in open("f2") if l not in h)'
    Третий питон по скорости cравним с перлом. Второй быстрее третьего, в два раза.

    > на крайне выгодной для grep задаче.

    Крайне выгодно для grep было бы искать эти 5 миллионов паттернов в файле с более свободным форматом.

     
     
  • 8.55, angra (ok), 07:43, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что тут странного Собственно сэта новость о новой версии, в которой определен... текст свёрнут, показать
     
  • 7.56, Andrey Mitrofanov (?), 09:53, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты процитировал фразы о perl, но при этом зачем-то сравнил grep с

    Ну, при не знании перл, я предпочёл про него не писать...

    > $ /usr/bin/time -f %e\\t%U\\t%M grep -vFf f1 f2 | wc -l
    > 64.12 62.94 1781788
    > $ /usr/bin/time -f %e\\t%U\\t%M perl -e 'push @ARGV,"f1"; %h=map {$_=>1} <>;push
    >11.71 >10.85 1441532
    > Ну как бы perl однозначно в плюсе по потреблению ресурсов и это
    > на крайне выгодной для grep задаче.
    > С awk сравнить на своей машине не могу, так как при знании

    ...ровно, как и ты про GNU awk.
    #>>>16.88  10.36  323,256

    > perl нет никакого смысла изучать глубоко синтаксис для всех вариантов awk,

    Ну, победил, молодец.

    А чего с файлами-то? Одной строкой ваш перл не умеет или у тебя и bash "не завезли"?

    /usr/bin/time -f %e\\t%U\\t%M [B]<ваше заклининие для Арг1 и Арг2 вставить здесь>  [/B] <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l

    Сим приглашаю и питонистов померяться -- одной строкой, по шаблону выше^^^. GNU bash обязателен. На одной машине прогоните с GNU grep, GNU awk -- для сравнения же, да.

    Желающие с agrep, bsdgrep также welkomen.


    .
    .
    .
    Хотя бесссмысленно это всё. Криворукого джависта утёрли и ладно, не писать же на Си вымученный образчик со sparse битовыми полями, чтобы накрутить пузомерку, првильно?
    -
    -
    -

     
     
  • 8.63, . (?), 03:02, 08/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поленился чел просто, но я дожал bin bash awk -V 124 head -1 time awk ... текст свёрнут, показать
     
     
  • 9.64, . (?), 06:52, 08/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    python -V 124 head -1 time python - EOF seq 1000000000000 1000005000000 ... текст свёрнут, показать
     
     
  • 10.65, Аноним (-), 15:33, 08/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Python 2 7 13 4000000 real 0m20,490s user 0m16,934s sys 0m0,570s Убираем вездесу... текст свёрнут, показать
     
  • 9.67, Andrey Mitrofanov (?), 10:23, 09/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    usr bin time -f e t U t M Спасибо , но я эе просил 400, а зд... текст свёрнут, показать
     
  • 8.66, Аноним (-), 15:35, 08/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Очевидно же КО... текст свёрнут, показать
     
     
  • 9.69, _ (??), 18:28, 11/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не КО - а ко-ко-ко Потому как наступишь в гов W - на то что скорость дисков ... текст свёрнут, показать
     
     
  • 10.70, Аноним (-), 06:17, 13/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    tmpfs Не, не слышал ... текст свёрнут, показать
     
  • 7.68, Andrey Mitrofanov (?), 09:30, 10/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > perl нет никакого смысла изучать глубоко синтаксис для всех вариантов awk,
    > $ awk  -W version
    > mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

    mawk 'FNR==1{a++}a==1{x[$0]=1}a==2&&!x[$0]'

    с gawk-ом тоже работает. и с gawk --posix.

     

  • 1.6, Аноним (-), 09:49, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего они никак less не догонят по версиям? Поднапрячься нужно парням!
     
  • 1.9, iZEN (ok), 11:53, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Чем GNU grep лучше BSD grep?
     
     
  • 2.10, Andrey Mitrofanov (?), 11:56, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +16 +/
    > Чем GNU grep лучше BSD grep?

    Поциент, почему вы думаете, что ваш BSD grep хуже, чем GNU grep? Вас это беспокоит? Расскажите нам больше.

     
  • 2.11, Буратино (?), 12:01, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чем армяне!
     
  • 2.16, Аноним (-), 15:32, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ничем не лучше и не хуже:

    $ uname -a
    FreeBSD freebsd110-amd64 11.0-RELEASE-p1 FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29 01:43:23 UTC 2016     root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
    $ grep --version
    grep (GNU grep) 2.5.1-FreeBSD

    Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

     
     
  • 3.17, Аноним (-), 15:33, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну то есть похуже, конечно, тем, что версия допотопная.
     
     
  • 4.18, Аноним (-), 15:57, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ох уж эти эксперты опеннета code bsdgrep --version ... большой текст свёрнут, показать
     
     
  • 5.20, Andrey Mitrofanov (?), 16:58, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    #>>>$ grep --version
    #>>> grep (GNU grep) 2.5.1-FreeBSD
    > Ох уж эти эксперты опеннета:
    > % bsdgrep --version
    > bsdgrep (BSD grep) 2.5.1-FreeBSD

    Вот зачем ты так?! Изя же запутался! Фу таким быть.

     
  • 5.21, Аноним (-), 17:57, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > % bsdgrep --version

    Ну и на фига он там, если им всё равно никто кроме пары маргиналов не пользуется?

     
     
  • 6.22, Аноним (-), 18:03, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    К тому же

    $ ldd /usr/bin/bsdgrep | grep gnu
    libgnuregex.so.5 => /usr/lib/libgnuregex.so.5 (0x800e82000)

    И это неспроста, ибо фряшная реализация регулярок с0сёт.

     
     
  • 7.23, Аноним (-), 18:33, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > К тому же
    > $ ldd /usr/bin/bsdgrep | grep gnu
    >  libgnuregex.so.5 => /usr/lib/libgnuregex.so.5 (0x800e82000)
    > И это неспроста,

    Конечно неспроста, правда не обязательно по причине озвученных фантазий анонимных знатоков.
    man src.conf



    WITHOUT_GNU_GREP_COMPAT
                 Set this option to omit the gnu extensions to grep from being
                 included in BSD grep



    more /usr/src/usr.bin/grep/Makefile



    .if ${MK_GNU_GREP_COMPAT} != "no"
    CFLAGS+= -I${DESTDIR}/usr/include/gnu
    LIBADD+=        gnuregex
    .endif




    > ибо фряшная реализация регулярок с0сёт.

    Предпочитаю гнутый греп из портов, а не замороженное это-самое-мамонта.


     
     
  • 8.25, Аноним (-), 18:56, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Дело даже не в гнутых расширениях, без них можно жить Но то, что BSD-POSIX регу... текст свёрнут, показать
     
  • 3.19, iZEN (ok), 16:38, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В релизе GNU grep. (Твой вывод говорит о том, что ты не забумываешься о перекомпиляции FreeBSD и о переходе на BSD grep, который включается опцией WITH_BSD_GREP=true в /etc/src.conf).
     
     
  • 4.31, Andrey Mitrofanov (?), 20:36, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В релизе GNU grep.

    Ой, и https://wiki.freebsd.org/GPLinBase правда.

    Соболезнования. Как вас Эппл-то -- во имя Всепобеждающего Пермиссива -- истязает. Бедненькие!


    ---Век грядущий, век 22-ой, успокоит меня, сударыня?!
    ..."Ждём FreeBSD 10+" Team. Основатель.

    http://www.opennet.ru/openforum/vsluhforumID3/68588.html#53  //Семь лет ждал он!
    http://www.opennet.ru/openforum/vsluhforumID3/108834.html#24
    http://www.opennet.ru/openforum/vsluhforumID3/111284.html#97

     
  • 2.27, Аноним (-), 19:48, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Тем что менее распространен и местами не совместим.
     
  • 2.39, Led (ok), 23:49, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Чем GNU grep лучше BSD grep?

    Тем же, чем homo sapiens лучше изеня.

     
     
  • 3.43, iZEN (ok), 00:43, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >> Чем GNU grep лучше BSD grep?
    > Тем же, чем homo sapiens лучше изеня.

    Невероятно жгёшь.


     

  • 1.15, ALex_hha (ok), 14:50, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Ничего не мешает написать какой-то perg на Rust+Lua с нардами и инкассаторшами. Сказать что он безопасней и хипстеры перебегут за пару недель. Но никто не пишет же. А почему?

    вроде пару лет назад была мания все переписывать на go, там уже маразм доходил до переписывания ls на go. Но вроде уже наигрались и забросили

     
     
  • 2.26, pantheongod (?), 19:45, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сейчас стали шутить в стиле: "Мне теперь с Go на Rust это переписывать, да?" Я совсем не эксперт, но привычка писать на Go, как мне кажется, появилась после удачных волн маркетинга (у гугла с этим проблем не было никогда, на мой взгляд). Сейчас весь этот "накал страстей" явно спадает
     
     
  • 3.37, Аноним (-), 22:56, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Маркетинг удачный, да. Теперь мульярды на ём рубят.
     

  • 1.47, Аноним (-), 06:26, 05/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > На платформе Windows

    Зачем у них же там есть свой, как они любят выражаться, лучший powershell пусть на нем изворачиваются.

     
     
  • 2.52, Аноним (-), 23:46, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты шеллы с околошелловой шайкой-братией не путай.
     
     
  • 3.57, Andrey Mitrofanov (?), 09:57, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты шеллы с околошелловой шайкой-братией не путай.

    В винде нет композиции "других" инструментов, как coreutils-ов "около" шела.

    Поэтому "у них" каждый раз вижуял бейсик получается.

     
  • 2.59, й (?), 18:39, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    git.exe без diff.exe не работает. вы, конечно, можете рассказать линусу, что ему срочно надо переписать всё на powershell, но результат предсказуем.
     
  • 2.60, Аноним84701 (ok), 19:13, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> На платформе Windows
    > Зачем у них же там есть свой, как они любят выражаться, лучший  powershell пусть на нем изворачиваются.

    Да, чего только свои собственные, "неудаляемые", алиасы для curl/wget стоят. Зато ООП и молодежность во все поля.

    https://github.com/PowerShell/PowerShell/pull/1901
    > initialsession: remove curl and wget aliases
    > They block use of the commonly used command line tools without providing even an attempt to offer the same functionality. They serve no purpose for PowerShell users but cause confusion and problems to existing curl and wget users

    Jason Shirk, Software engineer on @PowerShell:
    > Your change would only affect Windows PowerShell (the version of PowerShell that ships in Windows). Those aliases have existed for multiple releases, so removing them would be a breaking change.
    > We are rejecting this PR as it introduces "Unacceptable Changes", see our breaking change contract.
    >

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру