Por padrão, grep
usa BRE (expressões regulares básicas), o que significa que caracteres especiais como +
serão interpretados como um caractere literal. Portanto, no GNU grep, ele precisará ser escapado, isto é, escrito como /+
. (Como alternativa, você poderia usar ERE (expressão regular estendida) com o sinal -E
; consulte man grep
para obter mais informações.) Portanto, seu comando pode ser escrito assim:
grep -nr '[s][u][p][e][r][(][A-Za-z]\+'
Além disso, o […]
ao redor de cada letra é desnecessário. […]
é usado para especificar uma classe de caracteres, por ex. [ab]
pode corresponder a a
ou b
. Se houver uma única letra no […]
, essa será a única correspondência. Assim, seu código poderia ser simplificado ainda mais para
grep -nr 'super([A-Za-z]\+'
N.B. De acordo com Stéphane Chazelas 's comentário , a construção \+
é uma extensão GNU. Se isso não funcionar, você pode tentar \{1,\}
.