synOCR synOCR - GUI für OCRmyPDF

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Hallo HaukeM und zunächst herzlich willkommen hier im Forum :)

Herzlichen Dank für dein Feedback. Einblicke in andere Sichtweisen und Abläufe machen das Programm besser. Ich werde es so gut wie möglich versuchen umzusetzen!
 

kev.lin

Benutzer
Mitglied seit
17. Jul 2007
Beiträge
624
Punkte für Reaktionen
42
Punkte
48
Hallo Stephan,

ich würde synOCR gerne ausprobieren, da mein Scanner leider kein OCR beherrscht. Auf meiner DS416play lässt sich Docker ohne Probleme manuell installieren, da die DS die gleiche Hardware verwendet wie die DS216+ II (für die Docker verfügbar ist).
Nun habe ich probiert, synOCR über das Paketzentrum zu installieren. Leider scheitert dies - das Paketzentrum meldet, dass Docker nicht installiert sei. Folgende Meldung erhalte ich:
synOCR.jpg
Hast Du eine Idee, was man hier machen kann?
 
Zuletzt bearbeitet:

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
100
Punkte
134
DS mal neu gestartet?
Ansonsten: wenn du nichts anderes am Docker hast, würde ich diese App deinstallieren und zuerst synOCR installieren. Dann wirst du aufgefordert, Docker nach zu installieren.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
... Auf meiner DS416play lässt sich Docker ohne Probleme manuell installieren, da die DS die gleiche Hardware verwendet wie die DS216+ II (für die Docker verfügbar ist) ...

synOCR enthält die Information, dass das Paket Docker benötigt wird (Paketabhängigkeit in der INFO). Bereits vorm Installieren prüft nun das Paketzentrum, ob es das Paket Docker im Paketzentrum gibt (und anscheinend zunächst nicht, ob es installiert ist), was bei der DS416play wegen der künstlichen Beschneidung nicht der Fall zu sein scheint, worauf die Installation nicht fortgeführt wird. Ich dachte, alle Intel 64bit-Modellen steht das Dockerpaket zur Verfügung ... Fehleinschätzung :rolleyes:

Ich werde das im nächsten Release anders prüfen, so dass auch solche Modelle unterstützt werden.
 

kev.lin

Benutzer
Mitglied seit
17. Jul 2007
Beiträge
624
Punkte für Reaktionen
42
Punkte
48
Klasse, das klingt vielversprechend! Danke schonmal vorab!
 

kev.lin

Benutzer
Mitglied seit
17. Jul 2007
Beiträge
624
Punkte für Reaktionen
42
Punkte
48
DS mal neu gestartet?
Ansonsten: wenn du nichts anderes am Docker hast, würde ich diese App deinstallieren und zuerst synOCR installieren. Dann wirst du aufgefordert, Docker nach zu installieren.

Ja, die DS hatte ich auch schonmal neu gestartet. Docker zu deinstallieren hatte ich noch nicht probiert. Ich weiß aber auch nicht, ob synOCR (bzw. dessen Installation) mich dazu auffordern würde, Docker zu installieren. Wie gesagt: Synology hat Docker eigentlich für meine DS nicht explizit freigegeben.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
... Ich werde das im nächsten Release anders prüfen, sodass auch solche Modelle unterstützt werden.

Update ist schon auf dem Weg :eek:

synOCR v0.11.0

IMPLEMENTIERUNGEN:
- Tags und Kategorien können jetzt Leerzeichen enthalten (eine Suche nach Tag "Rechnung " findet so nicht fälschlicherweise "Rechnungsstellung")
- Schalter, um Tags als Kategorie zu verwenden (manche wollen vielleicht für jeden Tag einen eigenen Ordner). Eine separate Kategoriezuweisung erübrigt sich in diesem Fall
- Schalter, um im gesamten Dokument zu suchen (nicht nur auf der ersten Seite / Gefahr von false positive Ergebnissen steigt!)
- PDFs die einen Error hervorrufen, werden in den Unterordner "ERRORFILES" im Quellverzeichnis verschoben (inkl. bis dahin geschriebenen LOG), um deren wiederholte Verarbeitung zu vermeiden

BUGFIXES:
- eine Installation auf Geräten, die nur inoffiziell Docker unterstützen, war nicht möglich
- kleinere Detailverbesserungen
 

HaukeM

Benutzer
Mitglied seit
27. Jan 2019
Beiträge
8
Punkte für Reaktionen
0
Punkte
1
Ich habe soeben die neue Version installiert. Ich kann bestätigen, dass die neue Funtkion der PDFs die einen Fehler erzeugen jetzt "aus dem Weg geräumt" werden. Beim Update ist mir aufgefallen, dass erneut die Lizenbedingungen abgefragt wurden und dies meiner Meinung nach das aufspielen eines automatische Updates verhindert. Ist das bewusst so gewählt, oder habe ich das falsch interpretiert.

Ich habe gestern auch erfolgreich den ahlbstündigen Aufruf per Aufgabenplaner aktiviert und kann bestätigen, dass der Aufruf darüber keine Probleme macht. Ich habe nur eine Frage bzgl. lange Jobs. Was passiert, wenn ein Job länger dauert als der Interval bei dem ein erneute Job gestartet wird. Wird das abgefangen oder "klauen" sich solche dopplete job gegenseitig die PDFs und erzeugen dopplet laufende Jobs zudem eine hohe Systemlast?

Ich habe in der letzten Nacht eine ganze Menge PDFs (<60) verarbeiten lassen und dabei ist mir bei zwei Dateien ein komisches Verhalten im Dateinamen der Zieldatei aufgefallen. Beide Quelldateien hatten ein "&" im Dateinamen und die Zieldatei hatte an der Stelle den Text "§tit" (anstelle vom &) im Dateinamen. Kann dies passieren?

Dan habe ich ein ganze Anzahl von tif und jpg Dateien in PDFs umwandeln wollen. Damit diese verarbeitet werden, habe ich "brute force" die Dateien in .pdf umbenannt. Dies wird von OCRmyPDF erkannt und entsprechend umgesetzt. Dabei ist mir aber aufgefallen, dass dann die Zieldateien eine " (2)" angehängt bekommen haben. Das passiert bei PDFs die bearbeitet werden nicht. Kann man diese verhindern, oder per parameter auch dafür sorgen, dass Bilddateien in PDFs umgewandelt werden?

Dann hatt ich mehrere Dateien (PDFs und JPGs) die ich gerne in eine einzige PDF zusammen gefasst hätte. Gibt es eine bekannt oder mögliche Art dieses "automatisch" durchführen zu lassen. Die Dateien waren in der Regel mit "-1" und "-2" oder "Seite 1" und "Seite 2" am Ende des Dateinamens benannt.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Ich habe soeben die neue Version installiert. Ich kann bestätigen, dass die neue Funtkion der PDFs die einen Fehler erzeugen jetzt "aus dem Weg geräumt" werden. ...
:)

... Beim Update ist mir aufgefallen, dass erneut die Lizenbedingungen abgefragt wurden und dies meiner Meinung nach das aufspielen eines automatische Updates verhindert. Ist das bewusst so gewählt, oder habe ich das falsch interpretiert...
Ich habe da schon die Werte Quick upgrade und Silent upgrade in der Konfiguration gesetzt. Ich beobachte aber dieses Verhalten bei allen 3rdparty-SPKs. Mir ist also derzeit keine Möglichkeit bekannt, das zu unterbinden.

... Ich habe nur eine Frage bzgl. lange Jobs. Was passiert, wenn ein Job länger dauert als der Interval bei dem ein erneute Job gestartet wird. Wird das abgefangen oder "klauen" sich solche dopplete job gegenseitig die PDFs und erzeugen dopplet laufende Jobs zudem eine hohe Systemlast? ...
Solange eine Instanz läuft, wird keine weitere gestartet.

... Ich habe in der letzten Nacht eine ganze Menge PDFs (<60) verarbeiten lassen und dabei ist mir bei zwei Dateien ein komisches Verhalten im Dateinamen der Zieldatei aufgefallen. Beide Quelldateien hatten ein "&" im Dateinamen und die Zieldatei hatte an der Stelle den Text "§tit" (anstelle vom &) im Dateinamen. Kann dies passieren? ...
§tit ist der interne Platzhalter für den ursprünglichen Dateinamen. Ich werde mir das mal ansehen.

... Dan habe ich ein ganze Anzahl von tif und jpg Dateien in PDFs umwandeln wollen. Damit diese verarbeitet werden, habe ich "brute force" die Dateien in .pdf umbenannt. Dies wird von OCRmyPDF erkannt und entsprechend umgesetzt. Dabei ist mir aber aufgefallen, dass dann die Zieldateien eine " (2)" angehängt bekommen haben. Das passiert bei PDFs die bearbeitet werden nicht. Kann man diese verhindern, oder per parameter auch dafür sorgen, dass Bilddateien in PDFs umgewandelt werden? ...
Das steht für die fernere Zukunft auf der ToDo-Liste (also Bilddateien als Quelldaten). Ich hätte nicht gedacht, dass sich OCRmyPDF so leicht überlisten lässt. Warum da schon der Zähler angehangen wird, schaue ich mir an.
Arbeitest du mit unterschiedlichen Ordnern, oder ist der Quellordner auch gleich der Ausgabeordner?
Ein Log an mich gemailt ist da immer hilfreich :)

... Dann hatt ich mehrere Dateien (PDFs und JPGs) die ich gerne in eine einzige PDF zusammen gefasst hätte. Gibt es eine bekannt oder mögliche Art dieses "automatisch" durchführen zu lassen. Die Dateien waren in der Regel mit "-1" und "-2" oder "Seite 1" und "Seite 2" am Ende des Dateinamens benannt.
Auch das ist ein Punkt für die ToDo-Liste der Zukunft.

Vielen Dank fürs Feedback!
 

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
450
Punkte für Reaktionen
8
Punkte
18
Mahlzeit Zusammen,

meine Syno hat heute das Update auf 0.11.0 durchgeführt. Ich musste die Lizenzbedingungen auch entsprechend nochmal
bestätigen. Alles kein Problem.

Bei mir wird das OCR´en mit dem hauseigenen Aufgabenplaner angeschoben...

Allerdings bekomme ich dabei jetzt folgende Fehlermeldung:

Sehr geehrter Benutzer,

Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

Aufgabe: ocrmypdf
Startzeit: Wed, 30 Jan 2019 12:20:02 GMT
Stoppzeit: Wed, 30 Jan 2019 12:20:03 GMT
Aktueller Status: 1 (Unterbrochen)
Standardausgabe/Fehler:
<p class="title">synOCR wurde gestartet ...</p><br><br><br><br>
<center><table id="system_msg" style="width: 40%;table-align: center;">
<tr>
<th style="width: 20%;"><img class="imageStyle" alt="status_loading" src="images/status_loading.gif" style="float:left;"></th>
<th style="width: 80%;"><p class="center"><span style="color: #424242;font-weight:normal;">Bitte warten, bis die Dateien<br>fertig abgearbeitet wurden.</span></p></th>
</tr>
</table></center>

<p class="center"><span style="color: #228b22;"><b>es gibt nichts zu tun</b><br>Programmlauf wird beendet.<br></span></p>

Es lag heute noch keine PDF Datei im zu verarbeitenden Ordner.

Hat jemand Rat was mir diese Fehlermeldung sagen soll?

viele Grüße

Huhie

EDIT 30.01.2019 14:12:
Was habe ich bereits versucht?
Paket deinstalliert
Docker Abbild gelöscht
Paket neu installiert

Fehler bleibt bestehen und kommt nach jeder Ausführung der hinterlegten Aufgabe!
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Hallo Huhie,

wie gesagt: für die Sache mit den Lizenzbestimmungen ist mir derzeit keine Lösung bekannt.

Die andere Meldung: Wo kommt die Meldung? Lässt du dir eine E-Mail zusenden, sofern das Skript im Aufgabenplaner nicht korrekt beendet wurde?
Den Fehler habe ich schon gefunden: ich habe den falschen Exit-Code angeben (1 statt 0) wenn es nichts zu tun gibt, sodass der Aufgabenplaner von einem Error ausgeht. Wird bald behoben. Bis dahin würde es helfen, die Benachrichtigungsmail zu deaktivieren.
 

Rampino

Benutzer
Mitglied seit
30. Jan 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Update ist schon auf dem Weg :eek:

synOCR v0.11.0

IMPLEMENTIERUNGEN:
- Tags und Kategorien können jetzt Leerzeichen enthalten (eine Suche nach Tag "Rechnung " findet so nicht fälschlicherweise "Rechnungsstellung")
- Schalter, um Tags als Kategorie zu verwenden (manche wollen vielleicht für jeden Tag einen eigenen Ordner). Eine separate Kategoriezuweisung erübrigt sich in diesem Fall
- Schalter, um im gesamten Dokument zu suchen (nicht nur auf der ersten Seite / Gefahr von false positive Ergebnissen steigt!)
- PDFs die einen Error hervorrufen, werden in den Unterordner "ERRORFILES" im Quellverzeichnis verschoben (inkl. bis dahin geschriebenen LOG), um deren wiederholte Verarbeitung zu vermeiden

BUGFIXES:
- eine Installation auf Geräten, die nur inoffiziell Docker unterstützen, war nicht möglich
- kleinere Detailverbesserungen

Hi geimist,

erstmal vielen lieben Dank für die Zeit und Mühe die Du hier investierst! Dein UI ist eine große Hilfe und die Tagging Funktion macht das ganze OCR Setup nochmal unglaublich viel nützlicher!

Ein paar Vorschläge für zukünftige Releases:
- Optional die Suche case-sensitive machen. Am besten wäre ein Steuerzeichen am Suchbegriff (z.B. "<case-sensitive>RechNung</case-sensitive>" beachtet Groß- und Kleinschreibung, "Rechnung" nicht) oder eine Aufteilung in Zwei Eingabefelder (Eins case-sensitive, eins nicht).
- Suche auf ganze Worte erzwingen. "Rechnung" wird nicht in "Abrechnung" gefunden (hier helfen die Leerzeichen aus der 0.11.0 noch nicht abschließend). Könnte ebenfalls durch ein Steuerzeichen umgesetzt werden (z.B. "<intact>Rechnung</intact>").
- Zusammengesetzt Wortkombinationen zulassen. Z.B. "Amt für Umweltschutz" als Suchbegriff.
- Wildcards: "Amt*schutz" findet "Amt für Umweltschutz", aber z.B. auch "Amt für Tierschutz" oder "Amtsanmaßungsschutz". Müsste man vermutlich bezüglich der maximalen Buschstaben begrenzen können.
- Oder wenn ich das jetzt weiter spinne: Warum nicht direkt Reguläre Ausdrücke als Suchworte zulassen? Damit wäre wohl direkt alles erschlagen, was ich oben geschrieben habe.

Zum Ende noch ein Fehlerbericht:
Ich habe mit der 0.11.0 Schwierigkeiten mit dem neuen "Leerstellen-Feature".
Z.B. wird "Rechnung " nicht gefunden, obwohl die erkannte Zeile aus dem PDF wie folgt aussieht: "Rechnung . 02.04.2014/un<cr>".
Sitzt das Problem hier vor dem Monitor und verwendet das Feature falsch? In welchem Schritt und auf welcher Datenbasis suchst Du die Leerstellen?

Sollten zusammengesetzte Begriffe wie "Amt für Umweltschutz" mit der 0.11.0 funktionieren? Das ist bei mir leider auch nicht der Fall.

Nochmals Daumen rauf für die tolle Arbeit!
Grüße,
Rampino

Edit: "nicht" ergänzt
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254

Rampino

Benutzer
Mitglied seit
30. Jan 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Noch ein Gedanke: Such-Hierarchien von inhaltsgleichen Begriffen.

"Rechnung<Beitragsrechnung;Abrechnung;Verrechnung;"

Werden z.B. sowohl "Rechnung" als auch "Beitragsrechnung" gefunden, dann "Beitragsrechnung" als Tag vergeben und "Rechnung" nicht als Tag hinterlegen.
 

Rampino

Benutzer
Mitglied seit
30. Jan 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Sorry für die vielen neuen Beträge, es sprudelt gerade nur so heraus:
Ausschlüsse wären auch noch etwas Feines.

Beispiel: "Keine Rechnung" als Ausschluss definiert, sollte dann dazu führen, dass der Tag "Rechnung" nicht vergeben wird, wenn das PDF die Zeile "Auftragsbestätigung - dies ist keine Rechnung" enthält (zumindest solange "Rechnung" nicht an anderer Stelle nochmal auftaucht).

Die Option "ganzes Dokument durchsuchen" könnte man noch verfeinern mit der Zwischenstufe "Solange auf weiterem Blatt suchen, bis mindestens ein Tag gefunden wurde". Dabei würde das Blatt mit dem ersten gefundenen Tag zu ende durchsucht.
Ebenfalls von Nutzen wäre in dem Zusammenhang eine Gewichtung von Suchbegriffen. Top Begriffe wie "Rechnung", "Auftrag", "Kontoauszug", etc. könnte man z.B. verwenden, um zu sagen "Solange auf weiterem Blatt suchen, bis mindestens ein Top Begriff gefunden wurde".

Grüße,
Rampino
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Hallo Rampino und herzlich willkommen hier im Forum :D

Ein paar Vorschläge für zukünftige Releases:
- Optional die Suche case-sensitive machen. Am besten wäre ein Steuerzeichen am Suchbegriff (z.B. "<case-sensitive>RechNung</case-sensitive>" beachtet Groß- und Kleinschreibung, "Rechnung" nicht) oder eine Aufteilung in Zwei Eingabefelder (Eins case-sensitive, eins nicht) ...
Kommt auf die ToDo-Liste

- Suche auf ganze Worte erzwingen. "Rechnung" wird nicht in "Abrechnung" gefunden (hier helfen die Leerzeichen aus der 0.11.0 noch nicht abschließend). Könnte ebenfalls durch ein Steuerzeichen umgesetzt werden (z.B. "<intact>Rechnung</intact>").
- Oder wenn ich das jetzt weiter spinne: Warum nicht direkt Reguläre Ausdrücke als Suchworte zulassen? Damit wäre wohl direkt alles erschlagen, was ich oben geschrieben habe ...
Du kennst dich mit Regex aus?
Ich nämlich nicht :rolleyes:, d.h. von meiner Seite aus bräuchte ich das erst gar nicht auf die ToDo-Liste schreiben. Aber wenn du mich da konstruktiv unterstützen möchtest, bist du herzlich eingeladen :cool:

- Zusammengesetzt Wortkombinationen zulassen. Z.B. "Amt für Umweltschutz" als Suchbegriff.
- Wildcards: "Amt*schutz" findet "Amt für Umweltschutz", aber z.B. auch "Amt für Tierschutz" oder "Amtsanmaßungsschutz". Müsste man vermutlich bezüglich der maximalen Buschstaben begrenzen können
...
Zum Ende noch ein Fehlerbericht:
Ich habe mit der 0.11.0 Schwierigkeiten mit dem neuen "Leerstellen-Feature".
Z.B. wird "Rechnung " nicht gefunden, obwohl die erkannte Zeile aus dem PDF wie folgt aussieht: "Rechnung . 02.04.2014/un<cr>".
Sitzt das Problem hier vor dem Monitor und verwendet das Feature falsch? ... Sollten zusammengesetzte Begriffe wie "Amt für Umweltschutz" mit der 0.11.0 funktionieren? Das ist bei mir leider auch nicht der Fall ...

Gerade nochmal bei mir getestet: ich finde z.B. den Ausdruck "ausgedruckt am". Kannst du dir mal den OCR-Text der besagten Stelle kopieren? Vielleicht ist ja die Erkennung an dieser Stelle zu schlecht.

EDIT: einen Fehler gefunden: Es funktionierte nur in Verbindung mit einer Kategorie. Wird behoben!

... In welchem Schritt und auf welcher Datenbasis suchst Du die Leerstellen? ...

Kannst du gerne HIER nachsehen (~ Zeile 300). Es ist quasi nur grep -qi "${searchtag}" "$searchfile"



Ist damit die HTML-Ausgabe gemeint, die beim Ausführen auf der Konsole ausgegeben wird?
Im Startskript wird geprüft, ob überhaupt Dateien zu bearbeiten sind. Wenn ja, so wird synOCR gestartet, wenn nein, wird eine (in HTML verpackte) Meldung ausgegeben und der Aufruf mit exit 0 (hier lag der Fehler) beendet. Die HTML-Meldung wird in der synOCR-GUI gerendert. Wird das Startskript nicht über die GUI, sondern über den Aufgabenplaner aufgerufen, bleibt aber die Meldung die gleiche. Das ist rein kosmetischer Natur. Alternativ müsste ich im Startskript prüfen, von wo aus es denn aufgerufen wurde. Das kann ja mit auf die ToDo-Liste.
 
Zuletzt bearbeitet:

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
450
Punkte für Reaktionen
8
Punkte
18
Die andere Meldung: Wo kommt die Meldung? Lässt du dir eine E-Mail zusenden, sofern das Skript im Aufgabenplaner nicht korrekt beendet wurde?
Den Fehler habe ich schon gefunden: ich habe den falschen Exit-Code angeben (1 statt 0) wenn es nichts zu tun gibt, sodass der Aufgabenplaner von einem Error ausgeht. Wird bald behoben. Bis dahin würde es helfen, die Benachrichtigungsmail zu deaktivieren.

Hi Stephan,

ich schubse mit dem Aufgabenplaner aus Synology das Script an. Angehakt habe ich, das ich benachrichtigt werden möchte
sobald ein Fehler auftritt oder die Aufgabe nicht korrekt beendet wird. Ich habe diese Benachrichtiung jetzt erstmal deaktiviert!

Diese Fehlermeldung kam in den vorherigen Versionen (selbe Konstellation) nicht, wenn z.B. nichts zum Abarbeiten vorlag. <- Das nur zur Info!

Danke für das tolle Tool !!!

Huhie
 

Hafer

Benutzer
Mitglied seit
03. Okt 2014
Beiträge
855
Punkte für Reaktionen
12
Punkte
38
Bin vor ein paar Tagen zufällig über dein Paket gestolpert. Wie lange schon habe ich soetwas vermisst ...
Funktioniert super, herzlichen Dank!!

Gruß, Hafer
 

Rampino

Benutzer
Mitglied seit
30. Jan 2019
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Du kennst dich mit Regex aus?
Ich nämlich nicht :rolleyes:, d.h. von meiner Seite aus bräuchte ich das erst gar nicht auf die ToDo-Liste schreiben. Aber wenn du mich da konstruktiv unterstützen möchtest, bist du herzlich eingeladen :cool:

Hi geimist,

ist schon ein bischen her, aber in meinen "aktiveren Entwicklerzeiten" habe ich mich auch mit RegEx beschäftigt. Ist nicht so schwierig wie es auf den ersten Blick aussieht. Allerdings habe ich keine Ahnung von Linux Shell.

Soweit ich Dein Script aber lesen kann, vermute ich, dass Du "einfach" wie bei der Datumssuche vorgehen könntest. Da verwendest Du ja bereits Reguläre Ausdrücke. z.B. in Zeile 331:
founddate=$( parseRegex "$content" "([1-9]|[1-2][0-9]|3[0-1])[\./-][0-1]?[0-9][\./-](19[0-9]{2}|20[0-9]{2}|[0-9]{2})" | head -n1 )

Wenn Du die RegExpression "([1-9]|[1-2][0-9]|3[0-1])[\./-][0-1]?[0-9][\./-](19[0-9]{2}|20[0-9]{2}|[0-9]{2})" in Deinem UI als Variable entgegennimmst, kann der Anwender damit selbst definieren, wie er $content, bzw. wohl eher das $searchfile durchsuchen will.

Komfortabeler wird es, wenn Du die Regulären Ausdrücke so wie jetzt die Tags "einsammelst" und in ein Array überführst - so wie Du es bereits ab Zeile 289 für die Tags tust. Dann könnte der Anwender für jedes Suchwort / Set an Suchbegriffen / Suche einen eigenen Regulären Ausdruck definieren.

statt
grep -qi "${searchtag}" "$searchfile"
würdest Du dann vermutlich etwas in der Art
foundtag=$( parseRegEx "$searchfile" "${userRegExpression}" )
aufrufen und prüfen, ob "foundtag" den gewünschten Wert gefunden hat.

Noch mehr Komfort wäre, wenn jemand (ich? *schluck*) die Regulären Ausdrücke zuliefern würde, die meine gewünschten Features implementieren und Dein Skript wieder nur die Tags dort "hinein wirft". Hier kann ich aber nichts versprechen. Zeit ist leider und wie immer ein knappes Gut.

Für die Datumssuche würde ich ähnlich vorgehen und die Regulären Ausdrücke durchaus vorgeben, aber durch den Nutzer veränderbar / erweiterbar als Variablen im UI hinterlegen. So kann dann der geneigte Nutzer selbst Ausdrücke hinzufügen. Beispielsweise fehlt mir aktuell das Format "Januar 2010" (häufig von Versicherungen verwendet).

Das war jetzt nur schnell durch den Code geflipped. Daher auch bitte nicht böse sein, wenn ich die Details falsch erfasst habe. Wie gesagt: Ich hab keine Ahnung von Linux Shell.

RegExp sind ein sehr mächtiges Werkzeug, mit dem man deklarativ solche Suchen, wie von mir in den vergangenen Posts angeregt, deklarativ durchführen kann (sprich: Sehr gut geeignet für Skriptsprachen wie Linux Shell). Wenn Du Dich für Reguläre Ausdrücke interessierst, kann ich folgende Seite empfehlen:
https://www.regular-expressions.info/

Grüße,
Rampino
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.379
Punkte
234
Danke für den Einblick, Rampino,

Die Mächtigkeit von Regulären Ausdrücken bezieht sich bei mir nicht nur auf die Funktion, sondern auch aufs Erstellen ... Ich bin froh, wenn die benötigten endlich mal laufen :rolleyes:

Ich bin mir da nicht sicher, ob ich da selbst zum gewünschten Ziel komme. Gerade das Zusammenspiel mit der GUI sollte ja schön smooth sein. Mir fehlt diesbezüglich der Überblick, das zum einen einfach, aber zugleich auch gewünscht mächtig zu gestalten.

Ursprünglich hatte ich ja gar keine Tagsuche eingebaut und auch nicht geplant. Aber es scheint ja doch den Meisten wichtig zu sein :eek:
 


 

Kaffeautomat

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.

:coffee:

Hier gehts zum Kaffeeautomat