Я столкнулся с текстовым файлом, содержащим несколько экземпляров bibtex, как этот
@article{Lindgren1989Resonant,
abstract = {Using a simple model potential, a truncated image barrier, for the
Al(111) surface, one obtains a resonant bound surface state at an energy
that agrees surprisingly well with recent observations by inverse
photoemission.},
author = {Lindgren and Walld\'{e}n, L.},
citeulike-article-id = {9286612},
citeulike-linkout-0 = {http://dx.doi.org/10.1103/PhysRevB.40.11546},
citeulike-linkout-1 = {http://adsabs.harvard.edu/cgi-bin/nph-bib\_query?bibcode=1989PhRvB..4011546L},
doi = {10.1103/PhysRevB.40.11546},
journal = {Phys. Rev. B},
keywords = {image-potential, surface-states},
month = dec,
pages = {11546--11548},
posted-at = {2011-05-12 11:42:49},
priority = {0},
title = {Resonant bound states for simple metal surfaces},
url = {http://dx.doi.org/10.1103/PhysRevB.40.11546},
volume = {40},
year = {1989}
}
Я хочу стереть абстрактное поле, которое может занимать одну или несколько (как в предыдущем случае) строк. Я попытался использовать sed следующим образом
sed "/^\s*${field}.*=/,/},?$/{
d
}" file
где файл - текстовый файл, содержащий указанный выше код bibtex. Тем не менее, вывод этой команды просто
@article{Lindgren1989Resonant,
Очевидно, что sed соответствует финалу}, но как мне получить его, чтобы он соответствовал закрывающей скобке абстрактного значения?