Si je comprends bien votre question, vous n'avez pas besoin d' échapper aux accolades avec une barre oblique inverse si vous formez la commande correctement.
En d'autres termes, lorsque vous utilisez un RegRx avec grep
, indiquez-lui que le modèle de recherche est un RegEx à l'aide de l' -E
option .
Si vous souhaitez une correspondance inverse, utilisez également l' -v
option .
Exemple:
ls | grep -E -v '\.[A-Za-z]{0,5}$'
- Notez que j'ai utilisé
{0,5}$
au lieu de {3,5}$
tenir compte de n'importe quelle extension jusqu'à 5 caractères. Si vous souhaitez inclure des fichiers pouvant comporter une extension de 1 ou 2 caractères, utilisez {3,5}$
plutôt.
Vous pouvez également utiliser l'exemple suivant:
ls | grep -E -v '\.[[:alpha:]]{0,5}$'
Parfois, une extension de fichier peut contenir des numéros. Pour en tenir compte, utilisez comme exemple:
ls | grep -E -v '\.[A-Za-z0-9]{0,5}$'
Ou:
ls | grep -E -v '\.[[:alnum:]]{0,5}$'
Remarque: Certaines commandes nécessitent que les options soient passées individuellement, alors que d'autres peuvent être combinées. Dans ce cas, grep
autorise les options à être concaténées. Ainsi, dans les exemples de commandes , -E -v
peut être exprimé par -Ev
ou -vE
, si vous le souhaitez.