首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用sed擦除bibtex条目中的字段

使用sed擦除bibtex条目中的字段
EN

Stack Overflow用户
提问于 2011-11-16 23:20:44
回答 3查看 179关注 0票数 1

我面对的是一个包含多个bibtex实例的文本文件

代码语言:javascript
运行
复制
@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

代码语言:javascript
运行
复制
sed "/^\s*${field}.*=/,/},?$/{
    d
}" file

其中file是包含上述bibtex代码的文本文件。但是,此命令的输出仅为

代码语言:javascript
运行
复制
@article{Lindgren1989Resonant,

很明显,sed匹配的是最终的},但是如何让它与抽象值的结束括号匹配呢?

EN

Stack Overflow用户

发布于 2011-11-16 23:31:07

这条awk线路对你有效吗?

代码语言:javascript
运行
复制
 awk '/abstract *= *{/{a=1} (a && /} *,$/){a=0;next;}!a' yourInput
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8154037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档