EsteLa página dice que cualquier multiplicador en una expresión regular puede tener el sufijo '?' para hacer una búsqueda no codiciosa. Sin embargo, no puedo entender cómo hacer que funcione en grep.
grep -E '^.*?$' file
imprime todo el texto.
¿Cómo puedo hacer una búsqueda de expresiones regulares no codiciosa con grep?
Respuesta1
Necesita grep
compatibilidad con PCRE (Expresión regular compatible con Perl). por ejemplo, GNU grep
tiene esto: se puede aprovechar con la -P
opción. También hay un programa independiente llamado pcregrep
que se puede instalar en muchos sistemas con paquete normal.
Tenga en cuenta que -E
habilita ERE (expresión regular extendida) que no tiene soporte de coincidencia no codiciosa con el ?
token.
Entonces, con GNU grep
puedes hacer, por ejemplo:
grep -Po '^.*?foo' file
para hacer coincidir (y extraer) hasta el primero foo
desde el principio.