Created
November 26, 2021 17:30
-
-
Save tschloss/db3e7a4f9c426c45bab77abca4a52612 to your computer and use it in GitHub Desktop.
Rename a batch of PDFs by keywords found in the text (very specific)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
### MacOS (sollte auch auf Linux laufen) | |
### Es wird ein Tool benötigt. welches PDF on Text umwandelt, hier "pdftotext" | |
### ... man muss sich den Output anschauen und sehen, wie man den namensgebenden Text findet | |
### ... hier sind es drei Stellen, die ich suche und in ein CSV schreibe sowie die Datei umbenenne | |
### ... Sondernehandlung für PDFs, die die Schlüsselwörter nicht enthalten => dann Werte des vorigen PDFs übernehmen | |
#rm log | |
schluessel="FEHLER" | |
schluessel1="" | |
### außer "rename" CSV-Datei erzeugen | |
echo "nr;doc;email;mitgnr;anrede" > steuer.csv | |
### Schleife über ale PDF im aktuellen Verzeichnis | |
for datei in *.pdf ; do | |
### PDF temporär in Text wandeln | |
pdftotext -layout -enc UTF-8 $datei - >temp.txt | |
### Schlüsselwort suchen | |
schluessel1=`grep -E "(Mitglieds|Spieler) Nr. " temp.txt | sed "s/^.* Nr. *\([0-9][0-9]*\)$/\1/"` | |
#schluessel1=`grep -E "Mitgliedsnummer:" temp.txt | sed "s/^Mitgliedsnummer: *\([0-9][0-9]*\)$/\1/"` | |
if [ -n "$schluessel1" ]; then | |
schluessel=$schluessel1 | |
fi | |
# else-Zweig: pdf mit vorigem cat !!! | |
#echo $schluessel | |
email=`grep "Versand an:" temp.txt | sed "s/^ *Versand an: *\(.*\)$/\1/"` | |
if [ -z "$email" ]; then | |
email="**NO-EMAIL**" | |
fi | |
#echo $email | |
anrede=`grep "Sehr geehrte" temp.txt` | |
if [ -z "$anrede" ]; then | |
anrede="Sehr geehrtes Mitglied," | |
fi | |
### umbenennen! | |
name=${schluessel}_${datei} | |
#mv $datei $schluessel.pdf | |
mv $datei $name | |
echo $datei';'$name';'$email';'$schluessel1';'$anrede >>steuer.csv | |
schluessel1="" | |
### aus Kontrollgründen alle Textversionen in eine große Textdatei schreiben | |
cat temp.txt >> allpdfinonetext.txt | |
done | |
### Ende Schleife über alle PDFs |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment