diff options
| author | Marcel Screm <marcel@marcelscrem.com> | 2026-01-03 16:50:24 +0100 |
|---|---|---|
| committer | Marcel Screm <marcel@marcelscrem.com> | 2026-01-03 16:50:24 +0100 |
| commit | 0f8b8e41d8f928fe14047e1eda017df7e7587f81 (patch) | |
| tree | fd213b6eaf8766dc0c22e9a17bbddc960cec0923 | |
added comments
| -rwxr-xr-x | getbib | 37 |
1 files changed, 37 insertions, 0 deletions
@@ -0,0 +1,37 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Provide a pdf." + exit 1 +fi + +PDF="$1" + +# 1. Convert PDF to text +TEXT=$(pdftotext "$PDF" -) + +# 2. Convert text to a single line +ONELINE=$(printf "%s" "$TEXT" | tr '\n' ' ') + +# 3. Exctract DOIs +DOIS=$(printf "%s" "$ONELINE" | \ + grep -aoE '10\.[0-9]{4,9}/[A-Za-z0-9._;()/:<>-]+' | \ + sort -u) + +if [ -z "$DOIS" ]; then + echo "No DOI found." + exit 1 +fi + +# 4. Get Crossref-BibTeX for every DOI +for DOI in $DOIS; do + echo "Gefundene DOI: $DOI" + + ENCODED_DOI=$(printf "%s" "$DOI" | sed 's/\//%2F/g') + URL="https://api.crossref.org/works/$ENCODED_DOI/transform" + + echo + echo "BibTeX:" + curl -L -s -H "Accept: text/bibliography; style=bibtex" "$URL" +done + |
