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,\} .