过滤 BibTeX (.bib) 文件中的重复项,例如文本文件中的“uniq”?

过滤 BibTeX (.bib) 文件中的重复项,例如文本文件中的“uniq”?

我有一个foo.bib包含重复条目的文件,我想获取一个包含相同条目但不包含重复条目的文件。我可以使用什么工具?

答案1

比布工具工具有一个专门为此设计的选项-d(尽管可能很难通过关键字找到,因为文档没有谈论“重复”而是谈论“重复”):

$ cat foo.bib 
@InProceedings{foo19,
  author =       {foo},
  title =        {bar}
}
@InProceedings{foo19,
  author =       {foo},
  title =        {bar}
}
$ bibtool -d foo.bib -o foo-nodup.bib
*** BibTool WARNING: Possible double entries discovered: 
***     foo19 =?= foo19
***     foo19
$ cat foo-nodup.bib 

@InProceedings{   foo19,
  author        = {foo},
  title         = {bar}
}

###InProceedings{ foo19,
  author        = {foo},
  title         = {bar}
}

默认情况下,条目仅被注释掉。你可以使用以下命令完全删除它们bibtool -- 'print.deleted.entries = off' -d

$ bibtool -- 'print.deleted.entries = off' -d foo.bib -o foo-nodup.bib
*** BibTool WARNING: Possible double entries discovered: 
***     foo19 =?= foo19
***     foo19
$ cat foo-nodup.bib                                                   

@InProceedings{   foo19,
  author        = {foo},
  title         = {bar}
}

相关内容