Является ли `grep -P` (Perl / Python regex) переносимым для большинства дистрибутивов Linux

Я предпочитаю регулярные выражения (Perl / Python Compatible Regular Express).

man grep :

…., но работает только в том случае, если pcre доступен в системе

Поддерживается ли это в наиболее распространенных дистрибутивах Linux?

Я не забочусь о freebsd, solarix, busybox, …

2 Solutions collect form web for “Является ли `grep -P` (Perl / Python regex) переносимым для большинства дистрибутивов Linux”

PCRE устанавливается практически на все серверные и настольные Linux-системы, но вы не можете ожидать этого на легких системах или встраиваемых системах (телефоны, маршрутизаторы, телевизоры и другие IoT ), поскольку они часто имеют очень обрезанные версии стандартного пользовательского пространства (в принципе, все, что связано с базой загрузок, гарантировано без PCRE).

В Debian есть функция Popularity Contest, которая измеряет метрики установки для различных пакетов. grep (25-й наиболее распространенный, 176k устанавливает) зависит ( не опционально) от libpcre3 (94-й наиболее распространенный, 174k устанавливает). Я не могу объяснить это несоответствие, но я тоже не буду беспокоиться об этом.

Следует с уверенностью предположить, что современные настольные системы и серверы, на которых запущены полные дистрибутивы Linux, будут иметь версии grep скомпилированные с поддержкой PCRE.

Тем не менее, если вы хотите, чтобы PCRE с большей уверенностью переносимости, не полагайтесь на grep -P или pcregrep (9363th при установках 1k) или ack (21728-й при 180 установках), используйте perl (88-й при установках 175k) напрямую:

 perl -ne 'print if /regexp/' 

Обратите внимание: есть серверы, умышленно отсутствующие perl, python и php для «целей безопасности», а именно, что многие скрипты-изгои (например, руткиты ) зависят от них и поэтому не могут работать. Это очень редко (и вроде глупо, так как есть много мощных скриптов оболочки POSIX).

Примечание 2: Perl медленный (как и python). LibPCRE работает намного быстрее, но чем проще ваши регулярные выражения, тем лучше производительность. Если возможно, используйте только grep (BRE, базовые регулярные выражения) или еще раз используйте grep -E (ERE, расширенные регулярные выражения), а не погружайтесь глубже в землю PCRE.

Насколько я помню, на этом я видел pcre на множестве дистрибутивов Linux, таких как CentOS, Ubuntu, RedHat, Debian и другие дистрибутивы. и я думаю, что это не вызовет у вас никаких проблем. также доступен источник:

http://sourceforge.net/projects/pcre/files/pcre/

  • Как экспортировать переменную среды из .sh-файла в zsh?
  • Усечение точности даты
  • скрипт bash для cd в каталог
  • Как написать сценарий Bash для автоматической настройки разрешения экрана Просвещения 20, работающего под VirtualBox?
  • Чтобы посчитать количество совпадений в мега-строке быстро
  • Сравнение индексов двух строк
  • Потрясающее поведение округления с печатью
  • Попытка обновить Amazon Route53 с помощью скрипта, но домен не обновляется
  • Сценарий мониторинга хоста с меткой времени
  • выполнение псевдонимов переменной в bash
  • Сценарий оболочки: список фильтров .pdf-файлов, чтобы исключить файлы с исходным файлом .tex
  • Если условие не работает в скрипте над ssh
  • Linux и Unix - лучшая ОС в мире.