Почему я не могу соответствовать строке
"1234567-1234567890"
с данным регулярным выражением
\d{7}-\d{10}
с egrep
от оболочки как это:
egrep \d{7}-\d{10} file
?
egrep
не распознает \ d
сокращение для класса символов цифр, поэтому вам нужно использовать, например, [0-9]
.
Более того, хотя в данном случае это не является абсолютно необходимым, рекомендуется заключать регулярное выражение в кавычки, чтобы предотвратить неправильную интерпретацию оболочкой. Таким образом, должно получиться что-то вроде этого:
egrep '[0-9]{7}-[0-9]{10}' file
grep
, ed
, sed
, egrep
, awk
, emacs
grep
против egrep
против других разновидностей регулярных выражений