Las expresiones regulares vienen en muchos sabores diferentes. Lo que está mostrando es una expresión regular similar a Perl (PCRE, "Expresión regular compatible con Perl").
grep
hace POSIX expresiones regulares. Estas son expresiones regulares básicas (BRE) y expresiones regulares extendidas (ERE, si grep
se usa con la -E
opción). Consulte el manual re_format
o el regex
o lo que sea semejante manual del grep
manual se refiere a en su sistema, o los textos estándar POSIX que acabo de dichos enlaces.
Si usa GNU grep
, podría usar expresiones regulares similares a Perl si usara grep
la opción grep
específica de GNU -P
.
También tenga en cuenta que grep
devuelve líneas por defecto, no subcadenas de líneas. Nuevamente, con GNU grep
(y algunas otras grep
implementaciones), puede usar la -o
opción para obtener solo los bits que coinciden con la expresión dada de cada línea.
Tenga en cuenta que ambas -P
y -o
no son extensiones estándar de la especificación POSIXgrep
.
Si no está utilizando GNU grep
, puede utilizarlo sed
para obtener el bit entre la cadena prefix
y el final de la línea:
sed -n 's/.*prefix\(.*\)/\1/p' file
Lo que esto hace es imprimir solo las líneas que sed
logran aplicar la sustitución dada. La sustitución reemplazará toda la línea que coincide con la expresión (que es un BRE), con el fragmento que aparece después de la cadena prefix
.
Tenga en cuenta que si hay varias instancias prefix
en una línea, la sed
variación devolvería la cadena después de la última , mientras que la grep
variación GNU devolvería la cadena después de la primera (que incluiría las otras instancias de prefix
).
La sed
solución sería portátil para todos los sistemas tipo Unix.