Ich habe einen großen Stapel von PDFs und möchte diese nach Inhalt stapelweise umbenennen. (Sie sind alle durchsuchbar). Und ich möchte dazu die Befehlszeilenschnittstelle verwenden.
Sie sind alle Gehaltsabrechnungen, haben also eine konstante Form und ich möchte sie nach Datum umbenennen.
Derzeit heißen sie: payslip100 .. payslip308
Die Zeichenfolge zum Umbenennen ist die Datumskomponente in Payment Date: 15/4/2016
Ich habe pdfgrep mit home-brew installiert und suche mit pdfgrep -HC 15 "Payment Date:" paySlip.pdf
was zurückkehrt paySlip.pdf:Payment Date: 8/7/2016
Ich habe meinen endgültigen Arbeitscode in einer Antwort angehängt.
command-line
rename
watermelon
quelle
quelle
mdfind annual -onlyin ./
Grep gibt jedoch keine Ergebnisse aus derselben Suche aus.grep annual *.*
grep --binary-files=text 'Payment Date:' file.pdf
? Woherfile.pdf
ist eine einzelne PDF-Datei, die Sie durchsuchen möchten.grep --binary-files=text 'Payment Date:' file.pdf
hilft nicht. Ich denke darüber nach, pdftotext auszuprobieren, das ich anscheinend mit Home-Brew installieren kann. apple.stackexchange.com/questions/155250/… .Antworten:
Nach einigen Anstrengungen bin ich zu einem nützlichen Ergebnis gekommen !! sed syntax ist ziemlich verwirrend und ich bin ziemlich glücklich, in einem Zustand zu existieren, in dem es funktioniert, ohne genau zu wissen warum.
Ich habe pdfgrep verwendet, das mit Homebrew installiert wurde (gefunden bei einer anderen Antwort, die ich momentan nicht finde).
Ich musste "/" für den Dateinamen ändern. Die Verwendung des Schrägstrichs als sed-Syntax ist nicht erforderlich und kann durch andere Zeichen ersetzt werden. Verwenden Sie daher "," anstelle von "/". https://stackoverflow.com/questions/17379293/replace-forward-slash-with-double-backslash-enclosed-in-double-quotes
Ich fand, dass es variable Räume in $ date gab, die das erforderten
..Payment Date:\ *\...
Ich habe das Jahr und den Monat zum Beginn des Dateinamens hinzugefügt, um die Organisation zu vereinfachen.
quelle