diff options
Diffstat (limited to 'getbib')
| -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 + |
