No funciona "+" en la sintaxis de expresiones regulares grep

No funciona "+" en la sintaxis de expresiones regulares grep

Estoy en Ubuntu 16.04

Intentando: grep '.*' file1

Producción: file nu-mber o-ne second string

Intentando:grep '.+' file1

La salida está ausente

¿Por qué plus no funciona?

Respuesta1

necesitas decirgrepestás usando una expresión regular extendida:

grep -E '.+' file1

El estandarExpresión regular básica(como se usa grepsin -E) equivalente de laExpresión regular extendida +Aunque \{1,\}algunas implementaciones (como la de GNU) también \+lo reconocen como una extensión (y siempre puedes usar ..*).

(Tenga en cuenta que en este caso particular grep -E .+es equivalente a grep -E .buscar subcadenas que coincidan con la expresión regular cuando no usa la -xopción. En muchos sistemas egrepse proporciona como un comando equivalente a grep -E, pero comoGraeme Señalaesto esobsoleto.)

Respuesta2

Con GNU grep (predeterminado en Ubuntu) también puedes habilitar el comportamiento extendido con una barra invertida. P.ej:

grep '.\+' file1

Respuesta3

Creo que + es un metacarácter de expresión regular extendido. Intenta usar egrep.

información relacionada