summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Screm <marcel@marcelscrem.com>2026-01-03 16:50:24 +0100
committerMarcel Screm <marcel@marcelscrem.com>2026-01-03 16:50:24 +0100
commit0f8b8e41d8f928fe14047e1eda017df7e7587f81 (patch)
treefd213b6eaf8766dc0c22e9a17bbddc960cec0923
added comments
-rwxr-xr-xgetbib37
1 files changed, 37 insertions, 0 deletions
diff --git a/getbib b/getbib
new file mode 100755
index 0000000..47887f6
--- /dev/null
+++ b/getbib
@@ -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
+