Eu quero fazer correspondência não padrão ganancioso (expressão regular) awk
. Aqui está um exemplo:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
É possível escrever uma expressão regular que selecione a string mais curta?
@article{gjn,
em vez desta longa string ?:
@article{gjn, Author = {Grzegorz J. Nalepa},
Eu quero obter este resultado:
Author = {Grzegorz J. Nalepa},
Eu tenho outro exemplo:
eco " , artigo {gjn, Autor = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); impressão }' ↑ ↑ ^^^^^
Observe que mudei os @
caracteres para vírgula ( ,
) na primeira posição da sequência de entrada e da expressão regular (e também mudei .*
para [^,]*
). É possível escrever uma expressão regular que selecione a string mais curta?
, Author = {Grzegorz J. Nalepa},
em vez da string mais longa ?:
,article{gjn, Author = {Grzegorz J. Nalepa},
Eu quero obter este resultado:
,article{gjn
Author
vírgula e espaço em branco, seguido por espaço em branco seguido por=
espaço em branco seguido{
por qualquer não-}
seguido por}
, embora isso exija (entre outras coisas) que você não possa aninhar{}
dentro da= { ... }
peça.