#!/bin/sh [ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit if [ -f "$1" ]; then # Try to get DOI from pdfinfo or pdftotext output. doi=$(pdfinfo "$1" | grep -io "doi:.*") || doi=$(pdfinfo "$1" | grep -io "Digital Object Identifier.*") || doi=$(pdftotext "$1" - | grep -io "doi:.*" -m 1) || doi=$(pdftotext "$1" - | grep -io "DOI:.*" -m 1) || doi=$(pdftotext "$1" - | grep -io "doi.org/.*" -m 1) || doi=$(pdftotext "$1" - | grep -io "Digital Object Identifier.*" -m 1) || exit 1 else doi="$1" fi # DOI never has spaces, so we can always take the last word in line doi=$(echo "$doi" | awk '{ print $NF }') echo "Detected DOI: $doi" # Check crossref.org for the bib citation. curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n" #wget "https://doi.org/$doi"