Как сопоставить несколько цифр, используя [:digit:] в grep?

El problema radica en la interfaz del cortafuegos. Apague el firewall y el problema desaparecerá. Sospecho que la configuración de la puerta de enlace de la aplicación es el problema.

0
04.07.2019, 02:29
1 ответ

Оператор + был нововведением после самой старой версии grep. До этого вам приходилось выражать + как один экземпляр, за которым следует тот же экземпляр с *. Не слишком элегантно. Очевидно, что оператор диапазона также находится в той же категории. Вы столкнетесь с той же проблемой в Vim при выполнении поиска, если только вы не предварите его \v (эквивалентом vim -E ).

Итак, как указывает John1024, на Mac

$echo 'i100s'| grep -Eo '[[:digit:]]+'
100
$echo 'i100s'| egrep -o '[[:digit:]]+'
100

Документация для gnu grep (, которая доступна на Mac через homebrew или другие менеджеры пакетов ), говорит, что ее поведение по умолчанию: -F (предполагает базовое регулярное выражение ),но, как говорит john1024, мой опыт показывает, что он поддерживает расширенные выражения без использования -E или варианта egrep. Если вы устанавливаете gnu grep с доморощенным пивом, он устанавливает его как ggrep, так что если есть некоторая несовместимость между поведением сценариев, использующих Mac grepи ggrep, вы можете решить это, изменив символические ссылки из одного исполняемого файла к другому.

2
28.01.2020, 03:30

Теги

Похожие вопросы