Приветствую! Появилась необходимость сформировать .bib
файлик поиском и копированием из общей .bib
-библиотеки.
Задача: есть .tex
файл, в котором для ссылок на литературу используется конструкция вида \cite{библиографическая_метка_1, библиографическая_метка_2,...}
. При компиляции эти самые метки ищутся в общей базе .bib
, и из полученной информации формируется библиография (упрощённо). Данные в общей базе хранятся вот в таком виде
@Тип_материала{библиографическая_метка,
author = {данные},
title = {данные},
doi = {данные},
pages = {данные},
volume = {данные},
journal = {данные},
publisher = {данные},
year = {данные},
}
(в конце записи запятой нет – иначе ошибка, это и может послужить зацепкой: запись начинается с @, заканчивается } без каких либо знаков)
Необходимо из общей базы сформировать базу тех источников, которые использовались в конкретном .tex
-файле.
Ковырянием в интернетах, я сформировал вот такого монстра, который успешно вытягивает из файла все библиографические метки:
grep -oP cite'\{\K[^\}]+' Имя_файла.tex|sed s/,/\\n/g|sed 's/\s*$//g'|sed "s/^[ \t]*//"| tr ' ' '\n' | sort -u
а вот как, зная метку, вытащить целиком конструкцию из файла – ума не приложу.