PDF an Hand des hinterlegten barcodes umbenennen
Re: PDF an Hand des hinterlegten barcodes umbenennen
Fall 1) Wir haben in der Regel den Barcode als Text per pdftotxt und magischen RegEx-Dingern.
Fall 2) Wir haben den Barcode für Sonderfälle per pdttoppm und zlib.
Es hängt jetzt an der Weiterverarbeitung.
In ein Verzeichnis werden die PDF hineingespielt (entweder per PDF-Erzeugung aus Thera-Pi heraus -> Fall 1) oder von nem scanner, per Hand oder sonstwie (Fall 2).
Jetzt soll das Ursprungs-PDF umbenannt werden mit dem Text aus dem Barcode und in ein anderes Verzeichnis kopiert/verschoben werden.
Fall 2) Wir haben den Barcode für Sonderfälle per pdttoppm und zlib.
Es hängt jetzt an der Weiterverarbeitung.
In ein Verzeichnis werden die PDF hineingespielt (entweder per PDF-Erzeugung aus Thera-Pi heraus -> Fall 1) oder von nem scanner, per Hand oder sonstwie (Fall 2).
Jetzt soll das Ursprungs-PDF umbenannt werden mit dem Text aus dem Barcode und in ein anderes Verzeichnis kopiert/verschoben werden.
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ich würde jetzt erstmal so weitermachen, den gefundenen String zu zerlegen (kannst statt dem grep auch gerne die Variante mit zbar stattdessen nehmen), script.sh:
ausführbarmachen, gegebenfalls dem richtigem Userberechtigungen geben. Wäre vielleicht sinnvoll, hier nen eigenen User fürs Verschieben anzulegen, der nirgendwo anders Schreibrechte hat, dann kann nicht viel schiefgehen, falls mal mit den RegEchsen/zbar was schiefgeht.
Dann den Teil mit inotify angehen. Ich müsste die Doku da auch erst selbst lesen. Relevant wäre zu wissen, ob/wie man inotify das script gibt, und ob(wie) es in der Lage ist, den Namen der gefundenen Datei an das Script zu übergeben.
Code: Alles auswählen
DATEI=$1
DATEINAME=`grep "^\*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.*\*$" $DATEI| head -1`
OLDIFS=$IFS
IFS='_-*'
arr=($DATEINAME)
Y=${arr[1]}
M=${arr[2]}
D=${arr[3]}
echo $Y " " $M " " $D
# hier noch auf plausibilität prüfen
# hier dann das verschieben
IFS=$OLDIFS
Code: Alles auswählen
./script.sh /tmp/testpdftext.txt
Re: PDF an Hand des hinterlegten barcodes umbenennen
Das scheint so noch nicht zu funktionieren.
Edit: Es scheint teilweise zu funktionieren.....
Die Datumswerte werden ausgegeben. Sonst passiert anscheinend nichts.
Ich bin auch zu unwissend, den Fehler einzugrenzen.
hier wird eine Variable festgelegt?
Es wird in DATEI nach den strings gesucht? 20y y-m m -d d_
Aber ist das nicht zu wenig? Müsste nicht "Pauschal" alles zwischen den Sternchen gesucht werden? Ohne weitere Behandlung?
?
Es wird ein array gebildet aus den Angaben Jahr, Monat und Tag
das array (der Dateiname???) wird ausgegeben?
Edit: Es scheint teilweise zu funktionieren.....
Die Datumswerte werden ausgegeben. Sonst passiert anscheinend nichts.
Code: Alles auswählen
./script.sh 3.txt
2022 04 01
Code: Alles auswählen
DATEI=$1
Code: Alles auswählen
DATEINAME=`grep "^\*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.*\*$" $DATEI| head -1`
Aber ist das nicht zu wenig? Müsste nicht "Pauschal" alles zwischen den Sternchen gesucht werden? Ohne weitere Behandlung?
Code: Alles auswählen
OLDIFS=$IFS
IFS='_-*'
Code: Alles auswählen
arr=($DATEINAME)
Y=${arr[1]}
M=${arr[2]}
D=${arr[3]}
Code: Alles auswählen
echo $Y " " $M " " $D
Re: PDF an Hand des hinterlegten barcodes umbenennen
Mehr sollte auch nicht passieren.letzter3 hat geschrieben:04.04.2022 15:47:24Das scheint so noch nicht zu funktionieren.
Edit: Es scheint teilweise zu funktionieren.....
Die Datumswerte werden ausgegeben. Sonst passiert anscheinend nichts.
Wenn das bei Dir funktioniert, dann kann man die $D $M $Y Variablen im Script weiternutzen, um den Verschiebebefehl damit zu füttern.
Aber:
Ein Problem, dass man nicht vernachlässigen darf, ist dass bei Eingabe von unerwarteten Sachen komplett andere Ausgaben erzeugt werden. Und dann schiebt so ein Script, Dateien an Stellen, wo sie besser nicht landen sollten. Oder überschreibt Sachen, die es nicht überschreiben sollte, etc.
Deswegen muss man sicherstellen, dass das Script nur mit den richtigen Sachen aufgerufen wird. Ich hab da nen ungutes Gefühl, Dir zu sagen "schreib jetzt einfach mv -n $Dateiname ziel/$D-$M-$Y_warmal_$Dateiname.pdf in die vorletzte Zeile", ohne das richtig zu machen.
Aber für "richtig" hab ich zu wenig Erfahrung, was inotify/bash hier alles falsches machen könnten.
@Mitlesende:
Ich würde sagen $D $Y $M darauf testen, dass die nicht leer sind und immer nur Zahlen enthalten? Mag mal jemand aufschreiben, wie das in bash am sinnvollsten aussähe? mv würde ich in dem Fall vorsichtshalber mit -n versehen. Keine Ahnung, wie inotify damit umgeht, dass es nen Zugriff auf die Datei gab (potentielle Endloschleife?) ...
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ahh, okay.
Aber machen wir uns hier die Sache nicht unnötig kompliziert?
Alles zwischen den Sternchen soll der neue Dateiname werden.
*2022-04-01_20123990*
Die neue Datei soll also 2022-04-01_20123990.pdf heissen.
Warum werden dann erstmal YYYY MM DD herausgepickt und nachher wieder zusammen gesetzt?
Sternchen kommen sonst innerhalb des Dokumentes nicht vor.
Ggf. kann noch darauf geprüft werden, ob vor dem _ ein Datum in der erwarteten Form ist. Nach dem _ sind verschiedene Muster möglich.
Ob es inotify oder cron wird, ist mir fast egal.
Vielleicht auch erstmal nur kopieren anstatt verschieben. Wobei dann die schon mal angefassten erneut umbenannt werden (oder auch nicht, je nachdem ob das erlaubt ist oder nicht)
Das Aufkommen an Dokumenten geht von 0/Tag über 1/Stunde bis zu 20/5min
Aber machen wir uns hier die Sache nicht unnötig kompliziert?
Alles zwischen den Sternchen soll der neue Dateiname werden.
*2022-04-01_20123990*
Die neue Datei soll also 2022-04-01_20123990.pdf heissen.
Warum werden dann erstmal YYYY MM DD herausgepickt und nachher wieder zusammen gesetzt?
Sternchen kommen sonst innerhalb des Dokumentes nicht vor.
Ggf. kann noch darauf geprüft werden, ob vor dem _ ein Datum in der erwarteten Form ist. Nach dem _ sind verschiedene Muster möglich.
Ob es inotify oder cron wird, ist mir fast egal.
Vielleicht auch erstmal nur kopieren anstatt verschieben. Wobei dann die schon mal angefassten erneut umbenannt werden (oder auch nicht, je nachdem ob das erlaubt ist oder nicht)
Das Aufkommen an Dokumenten geht von 0/Tag über 1/Stunde bis zu 20/5min
Re: PDF an Hand des hinterlegten barcodes umbenennen
Dann schlage ich mal folgendes vor:letzter3 hat geschrieben:04.04.2022 17:27:20Alles zwischen den Sternchen soll der neue Dateiname werden.
*2022-04-01_20123990*
Die neue Datei soll also 2022-04-01_20123990.pdf heissen.
Code: Alles auswählen
DATEINAME=`sed -n '/^\*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]*\*$/ {s/\*//g;p;q;}' "$DATEI"`.pdf
Use ed once in a while!
Re: PDF an Hand des hinterlegten barcodes umbenennen
Kann mir jemand erklären, warum dies gemacht wird?
20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]
Geht nicht sowas wie "Nimm die Zeichen zwischen den beiden Sternchen."
20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]
Geht nicht sowas wie "Nimm die Zeichen zwischen den beiden Sternchen."
Re: PDF an Hand des hinterlegten barcodes umbenennen
Natuerlich geht auch das ... nur koennte das auch auf sonstige Zeilen zutreffen, falls im Fliesstext zufaellig mal irgendwo eine Zeile mit einem Stern beginnt und aufhoert. Darum versucht man normalerweise die Angaben so eng wie moeglich zu fassen.letzter3 hat geschrieben:04.04.2022 18:08:57Kann mir jemand erklären, warum dies gemacht wird?
20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]
Geht nicht sowas wie "Nimm die Zeichen zwischen den beiden Sternchen."
Wobei in dem Fall hier immerhin nach dem ersten Fund schon abgebrochen wird, so dass der weiter untern stehende Fliesstext nicht mehr beruecksichtigt wird.
Aber hier hast du die Holzhammervariante:
Code: Alles auswählen
DATEINAME=`sed -n '/^\*..*\*$/ {s/\*//g;p;q;}' "$DATEI"`.pdf
Use ed once in a while!
Re: PDF an Hand des hinterlegten barcodes umbenennen
All den RegEchsen da ist gemein, dass nen 13ter Monat sein darf ... für Gehaltszahlungen natürlich nett, bei allem anderen nuja.
@bashfreunde: spricht (abgesehn davon, dass es schlimmes Chaos geben kann,} hier was gegen ${}?
Und mit Pfaden im übergebenen Dateinamen kommt das so auch noch nicht klar, da gabs doch von den built-in-bash Funktionen was für "nur den Dateinamenteil ohne Pfadrest", ich komm grad nicht auf den Namen, wie hieß das nochmal? Nicht Basepath, so ähnlich ...
oder muss man da wieder mit IFS und letzter arraypart rumtricksen?
Ich merk immer wieder, bashscripts sind nen einziger Krampf. awk und c++ sind so viel angenehmer
Code: Alles auswählen
#!/bin/bash
DATEI=$1
DATEINAME=`grep "^\*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.*\*$" $DATEI| head -1`
OLDIFS=$IFS
IFS='_-*'
arr=($DATEINAME)
Y=${arr[1]}
M=${arr[2]}
D=${arr[3]}
echo $Y " " $M " " $D
# hier noch auf plausibilität prüfen
#
# ....
# dann das verschieben
# echo rausnehmen, wenn es so aussieht, als sei es das, was es werden soll
# ich halte es ohne pruefung aber fuer ungut
echo mv -n ${DATEI} /dahin/${Y}-${M}-${D}_${DATEI}.pdf
IFS=$OLDIFS
Und mit Pfaden im übergebenen Dateinamen kommt das so auch noch nicht klar, da gabs doch von den built-in-bash Funktionen was für "nur den Dateinamenteil ohne Pfadrest", ich komm grad nicht auf den Namen, wie hieß das nochmal? Nicht Basepath, so ähnlich ...
oder muss man da wieder mit IFS und letzter arraypart rumtricksen?
Ich merk immer wieder, bashscripts sind nen einziger Krampf. awk und c++ sind so viel angenehmer
Re: PDF an Hand des hinterlegten barcodes umbenennen
Huhu
Spricht nichts dagegen, nein. Es ist, so wie von dir hier benutzt, an allen außer einer Stelle (und den Arrayzugriffen natürlich) aber auch kein funktionaler Unterschied (höchstens für die Lesbarkeit) zu einem „nackten“ $var. Nur beim ${D}_ braucht man die {}, da $D_ auch gültig wäre und die Variable D_ ansprechen würde.eggy hat geschrieben:04.04.2022 18:36:23spricht (abgesehn davon, dass es schlimmes Chaos geben kann,} hier was gegen ${}?
Es gibt keine explizite Funktion dafür. Man kann basename, dirname und co. allerdings mit Parameterexpansion ganz leicht nachbilden. Beispiel:eggy hat geschrieben:04.04.2022 18:36:23Und mit Pfaden im übergebenen Dateinamen kommt das so auch noch nicht klar, da gabs doch von den built-in-bash Funktionen was für "nur den Dateinamenteil ohne Pfadrest", ich komm grad nicht auf den Namen, wie hieß das nochmal?
Code: Alles auswählen
~$ my_basename() { echo "${1##*/}"; }
~$ my_basename /foo/bar/baz.txt
baz.txt
Ich schau mal gerade weiter, was ich hier noch so beitragen kann
Manchmal bekannt als Just (another) Terminal Hacker.
Re: PDF an Hand des hinterlegten barcodes umbenennen
Danke. basename wars
gehört zu den coreutils ... wie sollte es anders sein
Code: Alles auswählen
$ basename /tmp/testdaten.txt.pdf
testdaten.txt.pdf
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ah, dann hatte ich auch nicht ganz richtig gelesen. Ich meinte, du kamst nicht auf eine reine Shell-„Implementierung“ für basename.
Ich hab mal geschaut, eure Ansätze zum Umbenennen zusammenzutragen. Hoffe, das nimmt nix vorweg oder geht am Ziel vorbei:
Code: Alles auswählen
#!/bin/bash
set -eu -o pipefail
destname_pdftotext()
{
pdftotext "$1" - | grep -m1 "^\*[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.*\*$" | tr -d '*'
}
destname_zbarimg()
{
zbarimg -q -Sdisable -Scode39.enable <(pdftoppm -png -singlefile "$1") | cut -d: -f2- | tr ' ' _
}
: "${method:=zbarimg}"
srcfile=$1
destdir=${2:-/default/destination/dir}
destname=$("destname_$method" "$srcfile").pdf
echo "Would move '$(realpath "$srcfile")' to '${destdir%/}/${destname}'"
#mv -nv -- "$srcfile" "${destdir%/}/${destname}"
Aufzurufen mit PDF-Datei und – wenn gewünscht optional – dem Zielordner:
Code: Alles auswählen
~$ rename_from_barcode foobar.pdf /some/where/else
Would move '/here/foobar.pdf' to '/some/where/else/2022-03-24_20123988.pdf'
Code: Alles auswählen
~$ method=pdftotext rename_from_barcode foobar.pdf /some/where/else
Wenn das so manuell tut, was es soll, könnt man gucken, es um inotifywait -e close_write oder so zu erweitern oder das in einem separaten Skript benutzen, um dieses hier aufzurufen.
Zuletzt geändert von JTH am 14.04.2022 21:35:02, insgesamt 1-mal geändert.
Grund: ` | tr ' ' _` bei destname_zbarimg() ergänzt
Grund: ` | tr ' ' _` bei destname_zbarimg() ergänzt
Manchmal bekannt als Just (another) Terminal Hacker.
Re: PDF an Hand des hinterlegten barcodes umbenennen
Offtopic:
Nur such da mal in dieser Endlosmanpage nach was, von dem du den Namen nicht kennst .
Dass das in coreutils steckt, hab ich dann auch erst durch Dein Posting mit "base<tab>" ui ... mal "basetab /irgendwas/mit/pfad/ausprobieren" uiui ... "whereis basename", "apt-file search bin/basename" detektiviert. Also nochmal Danke für Gedächnis anstubsen.
Ich mach um umfangreichere Shellscripte normalerweise einen so weiten Bogen wie nur irgend möglich ... awk, make, notfalls auch Python ... alles, aber bitte nichts, bei dem ich mehr Zeit in die Besonderheiten der Syntax als in das eigentliche Problem investieren muss.
(hatte auch angenommen/gehofft, dass einer der üblichen Verdächtigen den Ball aufnimmt und die eingangs skizzierten Ideen in fertigen Code verwandelt )
Ich dachte auch erst, dass das ne bash Sache wäre.JTH hat geschrieben:04.04.2022 20:25:35Ah, dann hatte ich auch nicht ganz richtig gelesen. Ich meinte, du kamst nicht auf eine reine Shell-„Implementierung“ für basename.
Nur such da mal in dieser Endlosmanpage nach was, von dem du den Namen nicht kennst .
Dass das in coreutils steckt, hab ich dann auch erst durch Dein Posting mit "base<tab>" ui ... mal "basetab /irgendwas/mit/pfad/ausprobieren" uiui ... "whereis basename", "apt-file search bin/basename" detektiviert. Also nochmal Danke für Gedächnis anstubsen.
Ich mach um umfangreichere Shellscripte normalerweise einen so weiten Bogen wie nur irgend möglich ... awk, make, notfalls auch Python ... alles, aber bitte nichts, bei dem ich mehr Zeit in die Besonderheiten der Syntax als in das eigentliche Problem investieren muss.
(hatte auch angenommen/gehofft, dass einer der üblichen Verdächtigen den Ball aufnimmt und die eingangs skizzierten Ideen in fertigen Code verwandelt )
Re: PDF an Hand des hinterlegten barcodes umbenennen
Da stecken sicher noch so einige weniger bekannte Helferlein drin, bei denen es sich lohnen würde, die mal kennen zu lernen. Hast du nach dem RegEx-Kurs schon was vor, Meillo?
Manchmal bekannt als Just (another) Terminal Hacker.
Re: PDF an Hand des hinterlegten barcodes umbenennen
Jetzt habe ich ja gerade erst damit begonnen! Ich gehe davon aus, dass der sich schon ein paar Wochen hinziehen wird. Und da sprichst du schon vom naechsten Projekt!?
Nichts desto trotz, muss ich sagen, dass mir der RE-Kurs jetzt schon gefaellt. Wie auch schon beim Alias-Adventskalender mag ich die laengerdauernde gemeinsame Aktion daran. Das, finde ich, bereichert unser Forum in einer zusaetzlichen Weise. Ich haette also nichts dagegen, sowas oefters/regelmaessig zu machen. Fuer die Coreutils speziell bin ich aber nicht unbedingt die beste Ansprechperson, insbesondere nicht fuer die GNU Coreutils. Ich koennte halt ein paar POSIX Tools beitragen.
... eigentlich frage ich mich auch, warum gerade du mir die Coreutils zuschieben willst, wo du doch der grosse Kenner in dem Thema bist. Bei dem Script oben im Thread hast du ja auch alle Register gezogen! Ich sag nur:
Code: Alles auswählen
: "${method:=zbarimg}"
Use ed once in a while!
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ich rate mal: setzt Variable method auf zbarimg und tut sonst garnix?Meillo hat geschrieben:05.04.2022 13:07:04Wuerd' mich ja schonmal interessieren, wieviel Prozent der Leser das verstehen.Code: Alles auswählen
: "${method:=zbarimg}"
Re: PDF an Hand des hinterlegten barcodes umbenennen
Bitte nicht mit Code erklären weitermachen!
Ich will mich daran selbst versuchen (also verstehen, was warum wo gemacht wird).
Ich will mich daran selbst versuchen (also verstehen, was warum wo gemacht wird).
Re: PDF an Hand des hinterlegten barcodes umbenennen
och menno
letzter3 hat geschrieben:05.04.2022 14:33:29Ich will mich daran selbst versuchen (also verstehen, was warum wo gemacht wird).
Sag, wenn Du genug hast. Die Erklärung dürfte auch andere Mitlesende interessieren.
(Thanks @JTH für den Spoiler per PM)
Re: PDF an Hand des hinterlegten barcodes umbenennen
Okay, bin zwar müde und wollte mich eigentlich aus Zeitgründen auch erst am WE wieder damit beschäftigen. Aber damit ihr euren Spass habt und ich noch was lerne.
Hier der laienhafte Erklärversuch (geht davon aus, dass ich sämtliche Feinheiten finde )
legt die zu verwendende shell fest
beenden wenn Nicht-Null-Status oder nicht gesetzte Variablen für die Variable pipefail
Verstehe ich nicht. pipefail wird doch nicht definiert?
Hmmm. destname-Erklärung im eigentlichen Sinne nicht gefunden.
Lege Ziel fest->hier die Funktion (?) pdftotext
Wende pdftotext auf das Dokument (welches?) an. Greppe dann bis die Zahl 1 mal gefunden wurde (-m1).
Ratemodus für "^\ -> alles innerhalb der *
Sammle nur Ziffern 0-9, für YYYY-MM-DD
Setze _
es verlässt mich
Frage: kann anstelle von [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] auch [:digit:]-[:digit:]-[:digit:] verwendet werden?
Lege Ziel fest->hier die Funktion (?) zbarimg
Wende zbarimg an auf den input, der von pdftoppm kommt. Verwende keinen Barcode->verwende code39 und gebe nur das Barcode-Ergebnis aus.
pdftoppm erzeugt ein PNG und wandelt nur die erste Seite in ein png.
Benutze (nach zbarimg???) einen TRENNER anstelle des Tabulators und nur für die Felder 2 (???)
Also gib nur die 2 gefundenen (Datum _ Variable) aus?
den : hab ich auf die Schnelle nur als "application" in der bash gefunden. Die englische Erklärung ist mir aber zu hoch. Setze incl. in der Methode (hier->zbarimg) verwendeten Variablen und führe aus? Würde dann mit dem destname korrespondieren.
Quellfile (ohne Prüfung, ob das überhaupt ein PDF ist?)
Zielverzeichnis. Ist von mir zu setzen. Aber bei {2: steig ich aus.
Definition des künftigen Namens in Abhängigkeit der verwendeten Methode. Defaultmäßig also des outputs von cut -d: -f2-, nachdem zbarimg an dem Quellfile rumgewurschtelt hat.
Schreibe auf den screen, was du tun würdest.
Aber wo kommt jetzt realpath her?
Auskommentiert wird das Quell-PDF verschoben in das Zielverzeichnis als PDF mit dem Namen der durch destname=$("destname_$method" "$srcfile").pdf festgelegt wurde.
Okay. Maximal die Hälfte verstanden.
Was mir noch nicht einleuchtet: wo liegt das script? Es wird ja kein Verzeichnis angegeben, in dem "gearbeitet" werden soll.
Kann
a) ein Log erzeugt werden, in dem stumpf die Umwandlung dokumentiert wird?
b) eine Warnmeldung per mailx bei Abbruch versandt werden?
Hier der laienhafte Erklärversuch (geht davon aus, dass ich sämtliche Feinheiten finde )
Code: Alles auswählen
#!/bin/bash
Code: Alles auswählen
set -eu -o pipefail
Verstehe ich nicht. pipefail wird doch nicht definiert?
Code: Alles auswählen
destname_pdftotext()
{
pdftotext "$1" - | grep -m1 "^\*[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_.*\*$" | tr -d '*'
}
Lege Ziel fest->hier die Funktion (?) pdftotext
Wende pdftotext auf das Dokument (welches?) an. Greppe dann bis die Zahl 1 mal gefunden wurde (-m1).
Ratemodus für "^\ -> alles innerhalb der *
Sammle nur Ziffern 0-9, für YYYY-MM-DD
Setze _
es verlässt mich
Frage: kann anstelle von [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] auch [:digit:]-[:digit:]-[:digit:] verwendet werden?
Code: Alles auswählen
destname_zbarimg()
{
zbarimg -q -Sdisable -Scode39.enable <(pdftoppm -png -singlefile "$1") | cut -d: -f2-
}
Wende zbarimg an auf den input, der von pdftoppm kommt. Verwende keinen Barcode->verwende code39 und gebe nur das Barcode-Ergebnis aus.
pdftoppm erzeugt ein PNG und wandelt nur die erste Seite in ein png.
Benutze (nach zbarimg???) einen TRENNER anstelle des Tabulators und nur für die Felder 2 (???)
Also gib nur die 2 gefundenen (Datum _ Variable) aus?
Code: Alles auswählen
: "${method:=zbarimg}"
Code: Alles auswählen
srcfile=$1
Code: Alles auswählen
destdir=${2:-/default/destination/dir}
Code: Alles auswählen
destname=$("destname_$method" "$srcfile").pdf
Code: Alles auswählen
echo "Would move '$(realpath "$srcfile")' to '${destdir%/}/${destname}'"
Aber wo kommt jetzt realpath her?
Code: Alles auswählen
#mv -nv -- "$srcfile" "${destdir%/}/${destname}"
Okay. Maximal die Hälfte verstanden.
Was mir noch nicht einleuchtet: wo liegt das script? Es wird ja kein Verzeichnis angegeben, in dem "gearbeitet" werden soll.
Kann
a) ein Log erzeugt werden, in dem stumpf die Umwandlung dokumentiert wird?
b) eine Warnmeldung per mailx bei Abbruch versandt werden?
Re: PDF an Hand des hinterlegten barcodes umbenennen
War meine Interpretation so gut, dass nichts mehr hinzuzufügen wäre oder so schlecht, das Hopfen und Malz verloren scheinen?
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ich überlass das lieber JTH, wer den Schaden anrichtet, muss auch aufräumen
Re: PDF an Hand des hinterlegten barcodes umbenennen
Na danke, eggy
Ich bin grad unterwegs und hab erst Sonntagabend wieder Gelegenheit, richtig zu antworten. Größere Beiträge sind am Handy doch etwas aufwendig. Antworte dann gerne nochmal ausführlich
Ich bin grad unterwegs und hab erst Sonntagabend wieder Gelegenheit, richtig zu antworten. Größere Beiträge sind am Handy doch etwas aufwendig. Antworte dann gerne nochmal ausführlich
Manchmal bekannt als Just (another) Terminal Hacker.
Re: PDF an Hand des hinterlegten barcodes umbenennen
@letzter3: Damit das Warten auf den Weihnachtsmann, aehm auf den JTH nicht zu langweilig wird:
und mit "apt-file search realpath | grep bin" bekommst dann auch noch erzählt aus welchem Paket das stammt.
Code: Alles auswählen
whereis realpath
which realpath
Re: PDF an Hand des hinterlegten barcodes umbenennen
Oder einfacher
Code: Alles auswählen
apt-file search bin/realpath
Re: PDF an Hand des hinterlegten barcodes umbenennen
Ich würde mich freuen.JTH hat geschrieben:07.04.2022 21:46:59Na danke, eggy
Ich bin grad unterwegs und hab erst Sonntagabend wieder Gelegenheit, richtig zu antworten. Größere Beiträge sind am Handy doch etwas aufwendig. Antworte dann gerne nochmal ausführlich