문제 설명

문제 설명

문제 설명

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

@book항목 만 얻으려면 .<yourfile>.bibonlybooks.bib

유형은 항상 모두 대문자여야 하며 따옴표로 묶어야 합니다. Windows OS에서는 바깥쪽 따옴표가 double이어야 하고 안쪽은 double이어야 합니다 -c "$type = 'BOOK'". 반면 Unix에서는 그 반대여야 합니다.-c '$type = "BOOK"'


당신은 또한 사용할 수 있습니다bibtool:

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

~ @book의 항목 만 씁니다 .all.bibsome.bib

JabRef와 같은 일부 참고문헌 관리자는 파일 필터링 기능도 제공하는데 .bib, 여기에서도 사용할 수 있습니다.

관련 정보