如何将参考文献从 bbl 文件导出到 csv?

如何将参考文献从 bbl 文件导出到 csv?

我有一个.bib文件,但不是所有的参考文献都被引用。

我想在.csv文件中列出所有引用的(仅)参考文献。

但是,该.bib文件也包含未引用的参考文献。

我的理解是,该.bbl文件仅包含引用的参考文献。

那么,如何将引用的参考文献导出到文件.CSV

答案1

根据您使用的是biblatex还是 BibTeX,.bbl如果您想恢复所有数据,该文件可能不适合由机器读取。如果您只想恢复引用的条目,而不想恢复其他数据,那么这不太重要。

BibTeX 书目生成的文件.bbl包含可排版的文本,因此如果您想恢复条目数据,则需要进行相当复杂的解析。

\begin{thebibliography}{1}
\bibitem[Elk(1972)]{elk}
Anne Elk.
\newblock \emph{A Theory on Brontosauruses}.
\newblock Monthy \& Co., 1972.

\end{thebibliography}

由于样式决定了写入.bbl文件的内容,因此某些数据可能会丢失。

.bbl生成的文件包含biblatex结构化、LaTeX 可读格式的输入数据,理论上可以对其进行解析以返回所有输入数据。

\refsection{0}
  \datalist[entry]{nyt/global//global/global}
    \entry{elk}{book}{}
      \name{author}{1}{}{%
        {{un=0,uniquepart=base,hash=6a9b0705c275273262103333472cc656}{%
           family={Elk},
           familyi={E\bibinitperiod},
           given={Anne},
           giveni={A\bibinitperiod},
           givenun=0}}%
      }
      \list{location}{1}{%
        {London}%
      }
      \list{publisher}{1}{%
        {Monthy \& Co.}%
      }
      \strng{namehash}{6a9b0705c275273262103333472cc656}
      \strng{fullhash}{6a9b0705c275273262103333472cc656}
      \strng{bibnamehash}{6a9b0705c275273262103333472cc656}
      \strng{authorbibnamehash}{6a9b0705c275273262103333472cc656}
      \strng{authornamehash}{6a9b0705c275273262103333472cc656}
      \strng{authorfullhash}{6a9b0705c275273262103333472cc656}
      \field{sortinit}{E}
      \field{sortinithash}{8da8a182d344d5b9047633dfc0cc9131}
      \field{extradatescope}{labelyear}
      \field{labeldatesource}{year}
      \field{labelnamesource}{author}
      \field{labeltitlesource}{title}
      \field{title}{A Theory on Brontosauruses}
      \field{year}{1972}
    \endentry
  \enddatalist
\endrefsection
\endinput

.bbl生成的文件将biblatex包含仅与当前文档上下文相关的上下文特定数据。当您想将数据导出到 时,这可能是或可能不是您想要的.csv

但我会走一条不同的路。我会使用创建仅包含更大 .bib 文件中引用的参考文献的 .bib 文件生成.bib仅包含引用参考文献的文件,然后使用库直接读取该.bib文件。

答案2

您可以从文件中获取文档中的完整引用列表.aux。每个命令都将导致以以下格式\cite在文件中写入一个条目.aux

\citation{REFNAME}

REFNAME您在命令中使用的名称在哪里\cite。它将\citation为多引用\cite命令中的每个引用创建一个单独的命令,因此,如果您\cite{foo,bar}在文档中输入,您将看到

\citation{foo}
\citation{bar}

从这里,你可以做你想做的事情来生成 CSV 文件,所以如果你使用的是 Unix 系统(包括 MacOS 和 Linux),你可以这样写

grep '\\citation` my.aux | sort | uniq

这将为您提供文档中引用的所有参考名称的列表,其中删除了重复项。

相关内容