問題陳述

問題陳述

問題陳述

我有一個大.bib文件,我想將其拆分為多個較小的.bib文件。

@book為此,我正在尋找一個解析器,它允許我從原始文件中提取所有條目.bib,這樣我就可以將它們保存到新文件中。條目本身應該基本上保持不變。

萬一它有幫助:我正在使用biblatex& biber(在 Debian GNU/Linux 下),IIRC 提供了一些我很樂意在這裡使用的解析功能。

答案1

Biber 的工具模式可以實現這一點。不幸的是,在 2.11 之前的版本中,您所需的確切功能存在一個小問題。該問題已報告(https://github.com/plk/biber/issues/212)並在 Biber 2.11 中解決。

onlybooks.conf使用內容創建一個

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <output_align>true</output_align>
  <output_fieldcase>lower</output_fieldcase>
  <sourcemap>
    <maps datatype="bibtex" map_overwrite="1">
      <map>
        <per_nottype>book</per_nottype>
        <map_step map_entry_null="1" />
      </map>
    </maps>
  </sourcemap>
</config>

然後致電 Biber

biber --tool --configfile=onlybooks.conf <yourfile>.bib

並且您應該會看到一個名為 的文件,該文件<yourfile>_bibertool.bib僅包含.@book<yourfile>.bib

Biber 刪除其資料模型中未知欄位的警告當然也適用於此,請參閱防止“biber --tool”刪除 .bib 檔案中的非標準字段


或者,您可以bib2bib使用 bibtex2html。您可以在以下位置了解更多信息PDF文檔

使用

bib2bib -c '$type = "BOOK"' -ob onlybooks.bib <yourfile.bib>

僅取得in@book的條目。<yourfile>.bibonlybooks.bib

該類型必須始終全部大寫,並且必須用引號引起來。在 Windows 作業系統上,外部引號應為雙引號,內部引號應為單引號-c "$type = 'BOOK'",而在 Unix 上則應相反-c '$type = "BOOK"'


您也可以使用bibtool:

bibtool --select{@book} all.bib -o some.bib

僅寫入to@book的條目all.bibsome.bib

一些參考書目管理器(例如 JabRef)也提供過濾.bib文件的功能,也許也可以在這裡使用。

相關內容