Declaração do problema

Declaração do problema

Declaração do problema

Tenho um .bibarquivo grande que gostaria de dividir em vários .bibarquivos menores.

Para isso estou procurando um analisador que me permita extrair, digamos, todas as @bookentradas do .bibarquivo original, para que eu possa salvá-las em um novo arquivo. As próprias entradas devem basicamente permanecer intactas.

Caso isso ajude: estou usando biblatex& biber(no Debian GNU/Linux), que o IIRC oferece alguns recursos de análise que eu ficaria feliz em empregar aqui.

Responder1

Isto é possível com o modo de ferramenta do Biber. Infelizmente, houve um pequeno problema com a funcionalidade exata necessária nas versões anteriores à 2.11. O problema foi relatado (https://github.com/plk/biber/issues/212) e é resolvido no Biber 2.11.

Crie um onlybooks.confcom o conteúdo

<?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>

Então ligue para Biber com

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

e você deverá receber um arquivo chamado <yourfile>_bibertool.bibque contém apenas as @bookentradas de <yourfile>.bib.

A ressalva de que Biber exclui campos não conhecidos em seu modelo de dados também se aplica aqui, consulteImpedir que `biber --tool` remova campos não padrão em arquivos .bib.


Alternativamente, você pode bib2bibusar bibtex2html. Você pode descobrir muito mais noDocumentação em PDF.

Usar

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

para obter apenas as @bookentradas de <yourfile>.bibin onlybooks.bib.

O tipo deve estar sempre em letras maiúsculas e entre aspas. Nos sistemas operacionais Windows, as aspas externas devem ser double e as internas single -c "$type = 'BOOK'", enquanto no Unix deve ser o contrário-c '$type = "BOOK"'


Você também pode usarbibtool:

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

Grava apenas as @bookentradas de all.bibtosome.bib

Alguns gerenciadores de bibliografia como o JabRef também oferecem filtros .bibde arquivos, talvez isso também possa ser usado aqui.

informação relacionada