grep: проблема с регулярным выражением [закрыто]

-1
29.03.2018, 16:31
1 ответ

Во-первых, вы используете расширенный синтаксис регулярных выражений (ERE), такой как {}, () и ?. Добавьте опцию -E для использования ERE или экранирования {} и () с обратной косой чертой и замените ? следующим образом: grep -ne '[A-Za-z]\{1,30\} [AZ][az]\{1,30\}\W[A-Za-z]\{1,30\} [0- 9]\{1,30\}\W[0-9]\{5\} [A-Za-z]\{1,30\}\( [A-Za-z]\{1,30\ }\)\{0,1\}' электронные письма

Во-вторых, вы экранируете пробелы с помощью обратной косой черты внутри одинарных кавычек. В то время как большинство реализаций grep обрабатывают это как простые пробелы, стандарт posix считает это неопределенным: Интерпретация обычного символа, которому предшествует обратная косая черта ( '\' ), не определена.

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

3
28.01.2020, 05:07

Теги

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