Цифры сопоставления с образцом не работают в egrep?

Почему я не могу соответствовать строке

"1234567-1234567890"

с данным регулярным выражением

\d{7}-\d{10}

с egrep от оболочки как это:

egrep \d{7}-\d{10} file

?

56
задан jww 17 April 2019 в 15:48
поделиться

3 ответа

egrep не распознает \ d сокращение для класса символов цифр, поэтому вам нужно использовать, например, [0-9] .

Более того, хотя в данном случае это не является абсолютно необходимым, рекомендуется заключать регулярное выражение в кавычки, чтобы предотвратить неправильную интерпретацию оболочкой. Таким образом, должно получиться что-то вроде этого:

egrep '[0-9]{7}-[0-9]{10}' file

См. Также

Ссылки

69
ответ дан 26 November 2019 в 17:17
поделиться

Используйте [0-9] вместо \d. egrep не знает \d.

11
ответ дан 26 November 2019 в 17:17
поделиться

попробуйте вот это:

egrep '(\d{7}-\d{10})' file
-3
ответ дан 26 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

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