![从 biblatex 条目获取文件路径](https://linux22.com/image/475353/%E4%BB%8E%20biblatex%20%E6%9D%A1%E7%9B%AE%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84.png)
我正在努力从 biblatex 条目中正确获取文件路径。我正在研究这个由 Zotero 的 Better Biblatex 格式化的特定条目:
File = {/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai et al. - 2018 -
Methodological challenges of the use of robots in
ethological research.pdf;/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai2.pdf}
第一个文件名中有许多空格,并且保存在 biblatex 条目中,其中包含许多换行符和制表符。我希望使用它bibtools
来处理这个问题,但我无法弄清楚如何将其输出限制为条目中的单个键。
我要么在寻找一种方法来获得它,bibtools
因为它看起来比我对它进行破解更加强大,要么在寻找规则来正确地解析任意 biblatex 键,其中包含所有插入的换行符和制表符到正确的空格数。
澄清
- 磁盘上的实际文件路径相当正常,单词之间只有一个空格,换行符和制表符仅由于重排和缩进而出现在格式化的 .bib 文件中
- 我的目的是检索文件密钥的值以供另一个程序使用(最终打开 pdf)
- 我目前的方法是使用
bibtool
检索整个条目,然后使用正则表达式获取文件键的值,然后尝试删除换行符和制表符,但这似乎不太可靠(它已经在另一个用户的系统上不起作用了),所以我宁愿将这个问题委托给更成熟的工具
答案1
我联系了作者,bibtool
他好心地给了我一些指点。
虽然无法明确地用 来检索值bibtool
,但它可以处理空格问题,并且可以将返回的文本限制为所需的字段,从而使手动解析变得更加容易。
例如
bibtool -r biblatex -X abdaiMethodologicalChallengesUse2018 test/test.bib -- print.line.length=3000000 -- keep.field{file}
将检索条目abdaiMethodologicalChallengesUse2018
并返回
@Article{ abdaimethodologicalchallengesuse2018,
File = {/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai et al. - 2018 - Methodological challenges of the use of robots in ethological research.pdf;/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai2.pdf}
}
注意,如果其中一个离开,则存在差异print.line.length
:
@Article{ abdaimethodologicalchallengesuse2018,
File = {/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai et al.
- 2018 - Methodological challenges of the use of robots in
ethological
research.pdf;/home/fbence/.vim/plugged/bibtexcite.vim/test/Abdai2.pdf}
}
解析 File 键位于一行且没有任何格式化空格的键是一项非常容易的任务。