Я хочу сделать сопоставление не жадных шаблонов (регулярных выражений) в awk. Вот пример:
echo "@article{gjn, Author = {Grzegorz J. Nalepa}, " | awk '{ sub(/@.*,/,""); print }'
Можно ли написать регулярное выражение, которое выбирает более короткую строку?
@article{gjn,
вместо этой длинной строки?
@article{gjn, Author = {Grzegorz J. Nalepa},
Я хочу получить этот результат:
Author = {Grzegorz J. Nalepa},
У меня есть другой пример:
echo " , article {gjn, Author = {Grzegorz J. Nalepa}," | awk '{sub (/ , [^,] *, /, ""); Распечатать }'
↑ ↑ ^^^^^
Обратите внимание, что я изменил @символы на символы запятой ( ,) в первой позиции входной строки и регулярного выражения (а также изменился .*на [^,]*). Можно ли написать регулярное выражение, которое выбирает более короткую строку?
, Author = {Grzegorz J. Nalepa},
вместо более длинной строки?
,article{gjn, Author = {Grzegorz J. Nalepa},
Я хочу получить этот результат:
,article{gjn
Authorпосле запятой и пробела, а затем через пробел следует=затем пробел следует{вслед за чем не-}следует}, хотя это требует (помимо всего прочего) , что вы не можете вкладывать{}внутрь= { ... }части.