Planteamiento del problema

Planteamiento del problema

Planteamiento del problema

Tengo un .bibarchivo grande que me gustaría dividir en varios .bibarchivos más pequeños.

Para esto, estoy buscando un analizador que me permita extraer, digamos, todas las @bookentradas del .bibarchivo original, para poder guardarlas en un archivo nuevo. Básicamente, las entradas mismas deberían permanecer intactas.

Por si ayuda: estoy usando biblatex& biber(en Debian GNU/Linux), cuyo IIRC ofrece algunas capacidades de análisis que me encantaría emplear aquí.

Respuesta1

Esto es posible con el modo herramienta de Biber. Desafortunadamente, hubo un pequeño problema con la funcionalidad exacta que necesitas en las versiones anteriores a la 2.11. El problema ha sido reportado (https://github.com/plk/biber/issues/212) y está resuelto en Biber 2.11.

Crea un onlybooks.confcon el contenido.

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

Entonces llama a Biber con

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

y debería aparecer un archivo llamado <yourfile>_bibertool.bibque solo contiene las @bookentradas de <yourfile>.bib.

La advertencia de que Biber elimina campos no conocidos en su modelo de datos, por supuesto, también se aplica aquí, verEvite que `biber --tool` elimine campos no estándar en archivos .bib.


Alternativamente, puede utilizar bib2bibde bibtex2html. Puedes descubrir mucho más en elDocumentación en PDF.

Usar

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

para obtener solo las @bookentradas de <yourfile>.biben onlybooks.bib.

El tipo siempre debe estar en mayúsculas y debe estar entre comillas. En los sistemas operativos Windows, las comillas exteriores deben ser dobles y las interiores simples -c "$type = 'BOOK'", mientras que en Unix debe ser al revés.-c '$type = "BOOK"'


También puedes usarbibtool:

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

Escribe sólo las @bookentradas de all.bibasome.bib

Algunos administradores de bibliografía como JabRef también ofrecen filtrar .bibarchivos, tal vez eso también pueda usarse aquí.

información relacionada