Pourquoi ne puis-je pas faire correspondre la chaîne
"1234567-1234567890"
avec l'expression régulière donnée
\d{7}-\d{10}
avec egrep
du Shell comme ceci:
egrep \d{7}-\d{10} file
?
egrep
ne reconnaît pas \d
raccourci pour la classe de caractères numériques, vous devez donc utiliser par exemple [0-9]
.
De plus, bien que ce ne soit pas absolument nécessaire dans ce cas, il est de bonne habitude de citer l'expression régulière pour éviter une mauvaise interprétation par le shell. Ainsi, quelque chose comme ça devrait fonctionner:
egrep '[0-9]{7}-[0-9]{10}' file
grep
, ed
, sed
, egrep
, awk
, emacs
grep
vs egrep
vs les autres saveurs d'expression régulièrePour être complet:
Egrep prend en fait en charge les classes de personnages. Les cours sont:
Exemple (notez les doubles crochets):
egrep '[[:digit:]]{7}-[[:digit:]]{10}' file
vous pouvez utiliser \d
si vous passez grep l'option "Perl regex", ex:
grep -P "\d{9}"
Utilisez [0-9] au lieu de\d. egrep ne sait pas\d.