Quiero hacer coincidir patrones no codiciosos (expresiones regulares) awk
. Aquí hay un ejemplo:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
¿Es posible escribir una expresión regular que seleccione la cadena más corta?
@article{gjn,
en lugar de esta larga cuerda ?:
@article{gjn, Author = {Grzegorz J. Nalepa},
Quiero obtener este resultado:
Author = {Grzegorz J. Nalepa},
Tengo otro ejemplo:
echo " , artículo {gjn, Autor = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); impresión }' ↑ ↑ ^^^^^
Tenga en cuenta que cambié los @
caracteres a comas ( ,
) en la primera posición de la cadena de entrada y la expresión regular (y también cambié .*
a [^,]*
). ¿Es posible escribir una expresión regular que seleccione la cadena más corta?
, Author = {Grzegorz J. Nalepa},
en lugar de la cadena más larga ?:
,article{gjn, Author = {Grzegorz J. Nalepa},
Quiero obtener este resultado:
,article{gjn
Author
seguir una coma y un espacio en blanco, seguido de un espacio en blanco seguido de=
un espacio en blanco seguido{
de cualquier no}
seguido}
, aunque esto requiere (entre otras cosas) que no pueda anidar{}
dentro de la= { ... }
pieza.