Se comprendo correttamente la tua domanda, non hai bisogno di escape le parentesi graffe con una barra rovesciata se tu modulo il comando correttamente.
In altre parole, quando usi un RegRx con grep
, fai sapere che il modello di ricerca è un RegEx usando la -E
opzione .
Se vuoi una corrispondenza inversa , utilizza anche l'opzione -v
.
Esempio:
ls | grep -E -v '\.[A-Za-z]{0,5}$'
- Nota Ho usato
{0,5}$
anziché {3,5}$
per tenere conto di qualsiasi estensione fino a 5 caratteri. Se desideri includere file che potrebbero avere un'estensione di 1 o 2 caratteri, utilizza invece {3,5}$
.
Puoi anche usare il seguente esempio:
ls | grep -E -v '\.[[:alpha:]]{0,5}$'
A volte un'estensione di file può contenere dei numeri, quindi per tenerne conto, usa come esempio:
ls | grep -E -v '\.[A-Za-z0-9]{0,5}$'
o
ls | grep -E -v '\.[[:alnum:]]{0,5}$'
Nota: alcuni comandi richiedono che le opzioni siano passate individualmente, mentre altre possono essere combinate. In questo caso, grep
consente di concatenare opzioni . Quindi nell'esempio comandi , -E -v
può essere espresso come -Ev
o -vE
, se lo desideri.