Das kann nicht funktionieren. Du hast einen Schreib oder Kopierfehler drin. Oben in der Fehlermeldung sind 2 // drin.Aber egal, ob ich das postscript-Kommando in die erste oder die zweite Regel lege, es kommt immer der o.g. Fehler.
Karsten
Das kann nicht funktionieren. Du hast einen Schreib oder Kopierfehler drin. Oben in der Fehlermeldung sind 2 // drin.Aber egal, ob ich das postscript-Kommando in die erste oder die zweite Regel lege, es kommt immer der o.g. Fehler.
Hallo,Hi Karsten,
ja ich nutze eine YAML-Datei, die ich im YAML-Editor zusammengebaut habe.
rule_1001:
tagname: §tagname_RegEx
tagname_RegEx: (?:)(f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20)\K(\d{2})
postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed 's/für\ Januar/0101/g;s/für\ Februar/0201/g;s/für\ März/0301/g;s/für\ April/0401/g;s/für\ Mai/0501/g;s/für\ Juni/0601/g;s/für\ Juli/0701/g;s/für\ August/0801/g;s/für\ September/0901/g;s/für\ Oktober/1001/g;s/für\ November/1101/g;s/für\ Dezember/1201/g')"
condition: all
subrules:
- searchstring: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20\d{2}))
searchtyp: contains
isRegEx: true
rule_1002:
tagname: §tagname_RegEx_Bezügemitteilung
tagname_RegEx: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))
condition: all
subrules:
- searchstring: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20\d{2}))
searchtyp: contains
isRegEx: true
Leider nein. Kein Schreibfehler bzw. selbst wenn ich den Slash aus dem Zielverzeichnis entferne, findet das Postscript Kommando die Datei nicht. Es liegt definitiv am Dateinamen im Zusammenhang mit den beiden gleichzeitig angewendeten Regeln.Das kann nicht funktionieren. Du hast einen Schreib oder Kopierfehler drin. Oben in der Fehlermeldung sind 2 // drin.
Karsten
rule_1007:
tagname: §tagname_RegEx
targetfolder: /volume1/docker/SynOCR/Outbox/Job/LfULG/Bezügemitteilungen
tagname_RegEx: (?:)(f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20)\K(\d{2})
multilineregex:
postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed 's/für\ Januar/0101/g;s/für\ Februar/0201/g;s/für\ März/0301/g;s/für\ April/0401/g;s/für\ Mai/0501/g;s/für\ Juni/0601/g;s/für\ Juli/0701/g;s/für\ August/0801/g;s/für\ September/0901/g;s/für\ Oktober/1001/g;s/für\ November/1101/g;s/für\ Dezember/1201/g')"
apprise_call:
apprise_attachment:
notify_lang:
condition: all
subrules:
- searchstring: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20\d{2}))
searchtyp: contains
isRegEx: true
multilineregex:
source:
casesensitive:
rule_1008:
tagname: §tagname_RegEx_Bezügemitteilung
targetfolder: /volume1/docker/SynOCR/Outbox/Job/LfULG/Bezügemitteilungen
tagname_RegEx: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))
multilineregex:
postscript:
apprise_call:
apprise_attachment:
notify_lang:
condition: all
subrules:
- searchstring: (?:)((f.r)\s+?(?:Januar|Februar|M.rz|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s+?(19|20\d{2}))
searchtyp: contains
isRegEx: true
multilineregex:
source:
casesensitive:
Leider nein
Schickt mir bitte mal ein LOG Level 2 (upload in meiner Signatur), alles andere ist Kaffeesatz lesen.leider bekomme ich sie aber nicht zum Laufen
Hey wegomyway,muss ich dafür erst eine "rule" und darunter eine "subrule" erstellen ?
Hallo Sebastian,Ich stehe leider ziemlich auf dem Schlauch...
rule_1007:
tagname: §tagname_RegEx
targetfolder: /volume1/docker/SynOCR/Outbox/Job/LfULG/Bezügemitteilungen
tagname_RegEx: (?i)(für)\s*(?:Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s*(19|20)\K(\d{2})
postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed 's/^.\{6\}_//g;s/für\ Januar/0101/g;s/für\ Februar/0201/g;s/für\ März/0301/g;s/für\ April/0401/g;s/für\ Mai/0501/g;s/für\ Juni/0601/g;s/für\ Juli/0701/g;s/für\ August/0801/g;s/für\ September/0901/g;s/für\ Oktober/1001/g;s/für\ November/1101/g;s/für\ Dezember/1201/g')"
condition: all
subrules:
- searchstring: (?i)((für)\s*(?:Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s*(19|20\d{2}))
searchtyp: contains
isRegEx: true
rule_1008:
tagname: §tagname_RegEx_Bezügemitteilung
tagname_RegEx: (?i)((für)\s*(?:Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember))
condition: all
subrules:
- searchstring: (?i)((für)\s*(?:Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember)\s*(19|20\d{2}))
searchtyp: contains
isRegEx: true
Hallo,Es liegt definitiv am Dateinamen im Zusammenhang mit den beiden gleichzeitig angewendeten Regeln.
postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})/\3-\2-\1/g')"
Sie haben Post, leider via PM, da der Upload-Port in unserer Firewall gesperrt ist.Schickt mir bitte mal ein LOG Level 2 (upload in meiner Signatur), alles andere ist Kaffeesatz lesen.
Der PS-Code funktioniert so auch hier tadellos, jedoch habe ich zwei Regeln, die beide das gleiche Dokument bearbeiten um aus beiden Rename-Tags dann einen finalen Dateinamen zu erzeugen.postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})/\3-\2-\1/g')"
Der Mechanismus ist anders:Möglicherweise erstellt synOCR dabei eine Zwischendatei, die das am Ende angewendete postscript-Kommando durcheinanderbringt bzw. den Zwischendateinamen in die Variable ${output} stellt statt den finalen Dateinamen samt Pfad.
Wenn @Struppix hier von mehreren Dateien spricht, dann meint er damit: Wenn durch Erfüllen mehrerer Regeln verschiedene Zielordner zutreffen (also aus einer Quelldatei mehrere Zieldateien werden). Es hat aber nichts mit den Quelldateien zu tun. Hier wird eine nach der anderen (inkl. möglicherweise zutreffenden Postskript) abgearbeitet.Sprich Umbenennung Datei 1, Umbenennung Datei 2 => Postscript1, => Postscript2
echo ${output}
## Erkennung des Datums des Schreibens mit anschließender Umkehrung des Datums von 23.03.2024 nach 2024-03-23 im Dateinamen
STADTWERKE002:
tagname: §tagname_RegEx
tagname_RegEx: (?i)(Datum\:)(?:.+)\K(([[:digit:]]{2}).([[:digit:]]{2}).)((19|20)\d{2})
targetfolder: "Stadtwerke/"
condition: all
postscript: mv "${output}" "$echo '${output}' | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})/\3-\2-\1/g'"
subrules:
- searchstring: (?i)(Gutschrift Einspeisung Photovoltaik)
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
- searchstring: Stadtwerke
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
## Erkennung des Abrechnungsjahres, bspw 2023 für den Dateinamen
STADTWERKE003:
tagname: " Gutschrift Einspeisung PV §tagname_RegEx"
tagname_RegEx: (?i)(vom)\s*([[:digit:]]{2}.[[:digit:]]{2}.)\K(19|20)\d{2}
targetfolder: "Stadtwerke/"
condition: all
postscript: echo ${output}
subrules:
- searchstring: (?i)(Gutschrift Einspeisung Photovoltaik)
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
- searchstring: Stadtwerke
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
Wie man sieht, ist die erste Ausgabe der Pfad, der mir in der zweiten Regel ausgegeben wirdrun user defined post scripts:
➜ postscript_STADTWERKE003_240750937
/volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023 (1).pdf
➜ postscript_STADTWERKE002_355636808
mv: cannot stat '/volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023 (1).pdf': No such file or directory
ERROR at line 2537: mv "${output}" "$echo '${output}' | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})/\3-\2-\1/g'"
ERROR at line 2537: eval "${cmd}"
Die zweite Ausgabe zeigt den Fehler aus dem postscript, weil die Datei so gar nicht existiert: Die finale Datei liegt in und heißt:➜ postscript_STADTWERKE003_240750937
/volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023 (3).pdf
Von daher meine Annahme, dass bei der Ausführung zweier passender Regeln, die postscript-Anweisung(en) ins Leere läuft./volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023.pdf
$echo
ist keine gültige Variable und soll es hier auch nicht sein - es fehlt noch die Klammer um den Befehl).mv "${output}" "$(echo '${output}' | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})/\3-\2-\1/g')"
Hallo wegomyway,gibt es eine Grenze von "rules" die ich in der YAML-Datei mit Editor erstellen kann ?
@geimist , @Struppix : Vielen Dank an euch beide, dass ihr hier so fleißig mitlest und Empfehlungen abgebt. Ich versuch nochmals meinen Plan beim aktuellen Problem zu beschreiben.Noch weniger verstehe ich warum Du beide Dateien in einen / oder auch gleichen Zielordner verschiebst.
Lass doch die Regeln die Umbenennung in einem Dateinamen machen, die ja je nach Zutreffens die Benennung vornimmt, und dann mit einem Postscript die abschließende Verschiebung der Reihenfolge.
## Erkennung des Datums des Schreibens mit anschließender Umkehrung des Datums von 23.03.2024 nach 2024-03-23
STADTWERKE002:
tagname: §tagname_RegEx
tagname_RegEx: (?i)(Datum\:)(?:.+)\K(([[:digit:]]{2}).([[:digit:]]{2}).)((19|20)\d{2})
targetfolder: "Stadtwerke/"
condition: all
postscript: mv "${output}" "$(echo '${output}' | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})/\3-\2-\1/g')"
subrules:
- searchstring: (?i)(Gutschrift Einspeisung Photovoltaik)
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
- searchstring: Stadtwerke
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
## Erkennung des Abrechnungsjahres, bspw 2023 für den Dateinamen
STADTWERKE003:
tagname: " Gutschrift Einspeisung PV §tagname_RegEx"
tagname_RegEx: (?i)(vom)\s*([[:digit:]]{2}.[[:digit:]]{2}.)\K(19|20)\d{2}
targetfolder: "Stadtwerke/"
condition: all
subrules:
- searchstring: (?i)(Gutschrift Einspeisung Photovoltaik)
searchtyp: contains
isRegEx: true
source: content
casesensitive: true
- searchstring: Stadtwerke
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
➜ move to category directory
tag directory "Stadtwerke/" exists? ➜ OK [subfolder target dir]
target: /volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023.pdf
do not set a hard link when copying across volumes
-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------
➜ Adapt file date (Source: Source file)
➜ File permissions target file:
-rwxrwxrwx+ 1 synOCR synOCR 867185 Feb 25 09:48 /volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023.pdf
tag directory "Stadtwerke/" exists? ➜ OK [subfolder target dir]
➜ File name already exists! Add counter (1)
target: /volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023 (1).pdf
same file has already been copied into target folder (Stadtwerke/) and is skipped!
-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
INFO: Notify for apprise not defined ...
run user defined post scripts:
➜ postscript_STADTWERKE002_382717120
mv: cannot stat '/volume1/Scanner/Ausgabe/Stadtwerke/23.02.2024 Gutschrift Einspeisung PV 2023 (1).pdf': No such file or directory
ERROR at line 2537: mv "${output}" "$(echo '${output}' | sed -E 's/([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{2,4})/\3-\2-\1/g')"
ERROR at line 2537: eval "${cmd}"
Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.
Als Dankeschön schalten wir deinen Account werbefrei.