Chcę wykonać niepochodny wzór (wyrażenie regularne) awk. Oto przykład:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
Czy można napisać wyrażenie regularne, które wybiera krótszy ciąg?
@article{gjn,
zamiast tego długiego łańcucha ?:
@article{gjn, Author = {Grzegorz J. Nalepa},
Chcę uzyskać ten wynik:
Author = {Grzegorz J. Nalepa},
Mam inny przykład:
echo ” , artykuł {gjn, Autor = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); drukuj}
↑ ↑ ^^^^^
Zauważ, że zmieniłem @znaki na przecinek ( ,) na pierwszej pozycji zarówno ciągu wejściowego, jak i wyrażenia regularnego (a także zmieniłem .*na [^,]*). Czy można napisać wyrażenie regularne, które wybiera krótszy ciąg?
, Author = {Grzegorz J. Nalepa},
zamiast dłuższego ciągu ?:
,article{gjn, Author = {Grzegorz J. Nalepa},
Chcę uzyskać ten wynik:
,article{gjn
Authorprzecinka i białych znaków, a następnie białych znaków, a=następnie białych znaków, a{następnie dowolnych znaków, po których nie}następuje}, chociaż wymaga to (między innymi), że nie można zagnieździć{}wewnątrz tej= { ... }części.