我有一个很大的bibtex文件,其中包含许多条目,每个条目都具有常规结构
@ARTICLE{AuthorYear,
item = {...},
item = {...},
item = {...},
etc
}
(在某些情况下,ARTICLE
可能是一个不同的词,例如BOOK
)
我想做的是编写一个简单的脚本(最好仅是一个Shell脚本)以提取具有给定AuthorYear的条目并将其放入新的.bib文件中。
我可以想象我可以通过AuthorYear识别条目的第一句,而通过单引号可以识别条目的末尾,}
也许可以sed
用来提取条目,但是我真的不知道该怎么做。有人可以告诉我我将如何实现这一目标吗?
可能应该是这样的
sed -n "/AuthorYear/,/\}/p" file.bib
但这由于}
条目的第一项的关闭而停止,从而给出以下输出:
@ARTICLE{AuthorYear,
item = {...},
因此,我需要识别出这是否}
是一行中唯一的字符,并且在这种情况下,只有“ sed”停止读取。
@Barun的使用
—
Michiel 2013年
sed
根本没有必要,我只是认为那是最简单的选择。我想出了一个略有不同的代码:sed -n "/AuthorYear/, /^ *\}/p"
它似乎完全可以实现我想要的功能,包括关闭}
和纠正空格(如有)
sed -n "/AuthorYear/,/\}$/p"
。注意$
符号。它工作正常,除了它不打印}
bibitem 的结尾。顺便说一句,使用是sed
必要的吗?