Existen varias sintaxis de expresiones regulares diferentes. El valor predeterminado para grep se llama sintaxis básica en la documentación de grep.
De hombre grep (1):
In basic regular expressions the meta-characters
?, +, {, |, (, and) lose their special meaning; instead
use the backslashed versions \?, \+, \{, \|, \(, and \).
Por lo tanto en lugar de +
que debería haber tecleado \+
:
grep '^[[:space:]]\+' FILE
Si necesita más potencia de sus expresiones regulares, también me animo a echar un vistazo a la sintaxis de expresiones regulares de Perl. Generalmente son considerados los más expresivos. Hay una biblioteca C llamada PCRE que los emula y enlaces grep a ella. Para usarlos (en lugar de la sintaxis básica) puede usar grep -P.
Esto es engañoso. El interlocutor no está utilizando ninguna característica que requiera sintaxis extendida. Simplemente necesita hacer una barra invertida en el signo + según la sintaxis básica. –
Eso es cierto, no se dio cuenta de que aceptaba clases de caracteres como tales en BRE. Actualizará. – FatalError