Я хочу сделать сопоставление не жадных шаблонов (регулярных выражений) в 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
после запятой и пробела, а затем через пробел следует=
затем пробел следует{
вслед за чем не-}
следует}
, хотя это требует (помимо всего прочего) , что вы не можете вкладывать{}
внутрь= { ... }
части.