hooligen110
Goto Top

Skript Problem Suche nach bestimmten Textmuster in mehreren Textdateien

Hallo liebe Community,

ich habe folgendes Problem.
Ich soll für meinen Chef ein automatisierbares Script schreiben,mit dem eingegangene .tif Dateien automatisch per OCR(Tesseract) abgelesen werden und nur ein bestimmter Inhalt(in dem Fall eine 7 stellige Zahl)
in einer gleichnamigen Textdatei ausgegeben wird.
Den ersten Teil habe ich geschafft,dass Tesseract angesprochen wird,sämtliche .tif Dateien abgelesen werden und die Textdateien = den .tif Dateien benannt werden.
Nun bekomme ich den gesamten Inhalt der jeweiligen .tif Datei in einer Zeile der Textdatei zurück.
Mitten in der Textdatei befinden sich 7 stellige Zahlen (Sendungsnummern). Mal nur eine, mal mehrere hintereinander,welche dann mit einem Blank getrennt werden.
Nun stehe ich vor dem Problem,dass ich kein Script hinbekomme(möglichst mit vbs,Batch oder Powershell), welches mir folgende Bedingungen erfüllt:

-Suche in allen Textdateien nach 7 stelligen Zahlen
-Alle 7 stelligen Zahlen müssen mit 3 beginnen
-Lösche alles andere,was keine 7 stellige Zahlenfolge ist,welche mit 3 beginnt.
-speichere alles in die Urpsrungs Textdatei.

Ich hoffe meine Beschreibung war ausführlich genug und ich hoffe auf Hilfe,da ich schon stundenlang alle möglichen Foren durchsucht habe. <-- Ohne Erfolg.

Besten Dank schonmal.

Gruß

Hooligen110 aka Angelo

Content-Key: 252499

Url: https://administrator.de/contentid/252499

Printed on: April 24, 2024 at 05:04 o'clock

Member: colinardo
colinardo Oct 20, 2014 updated at 13:57:08 (UTC)
Goto Top
Hallo Angelo, Willkommen auf Administrator.de!
Mit Powershell ist das hiermit erledigt:
$path = 'c:\ordner'  
dir "$path\*.txt" | %{([regex]'3\d{6}').Matches((gc $_.Fullname)) | select -Expand Value | out-file $_.FullName -Force}  
(-edit- korrigiert das es auch auf PS 2.0 kompatibel ist)

Grüße Uwe
Member: hooligen110
hooligen110 Oct 20, 2014 at 13:12:11 (UTC)
Goto Top
Hallo Uwe,

Dankeschön für deine schnelle Antwort! face-smile

Ich habe das Skript grade einmal in die ISE geladen,vorher die Ausführung für Skripts freigegeben, den Pfad angepasst,die Textdateien erzeugt..

Wenn ich das Skript jetzt allerdings ausführe,dann verändert sich logischerweise das Änderungsdatum in der jeweiligen Textdatei. Beim Öffnen der jeweiligen Textdatei musste ich feststellen,dass diese leer ist. So,als hätte das Skript alles andere runterrasiert,weil es diese Bedingungen nicht gefunden hat.
Ich darf aus Datenschutzgründen(stehen Adressen und Kunden mit auf der tif bzw. in der Textdatei),keine dieser Dateien zur Anschauung hochladen,aber,ich lade einmal eine meiner Textdateien hier in das Nachrichtenfenster und ersetze sensible Daten durch #. Ich hoffe,dann funktioniert es mit der Problemlösung etwas besser,sodass ich euch nicht im nebel stochern lassen muss.

+49##2E1###1EI43 321.89.14 11:14 ' FaX Absender +491####291##3
Von SMS zum Fax - mit Empfänger +495###89#6###SMS im Festnetz erreichen _
sie mehr; Datum/Uhflelt 30.09.2014 11:14:47 Mitteilung?3491934 3491896 3491491 3491207 3490982SMS im Festnetz ist ein Service der ####### Deutschland GmbH.Die ####### ist nicht verantwortlich fiir den Inhalt des Faxes.Ü 1/1


Fyiface-sadDer komplette Text,so wie er da steht,befindet sich in der Textdatei in einer Zeile.)
Member: colinardo
colinardo Oct 20, 2014 updated at 13:19:56 (UTC)
Goto Top
Klappt hier aber einwandfrei ... mache das ja nicht zum ersten mal face-wink
Der komplette Text,so wie er da steht,befindet sich in der Textdatei in einer Zeile
das ist dem Script egal...

  • haben deine Textdateien zufällig ein besonderes Encoding ?
  • Welche Powershell-Version verwendest du ? Falls noch v2.0 dann habe ich das Script oben noch etwas angepasst
Member: hooligen110
hooligen110 Oct 20, 2014 at 13:25:27 (UTC)
Goto Top
Auch mit dem angepassten Script kommt die datei "leer" raus. face-sad

° Die Dateien haben das Unicode Format,da ich sonst keine Sonderzeichen einbinden konnte.
- Ich habe es vorher mit Batch Probiert,aber genau da hat es gehakt,dass ich es nicht ausführen konnte,weil es im Unicode vorhanden ist.

° ich verwende die V.1.0
- Muss es die nächsten par Wochen über auf einem Windows XP Prof. SP3 Rechner laufen lassen,danach auf einem Win 7 Prof. 64 Bit.
Member: colinardo
colinardo Oct 20, 2014 at 13:26:32 (UTC)
Goto Top
Zitat von @hooligen110:
° ich verwende die V.1.0
- Muss es die nächsten par Wochen über auf einem Windows XP Prof. SP3 Rechner laufen lassen,danach auf einem
ah ok passe es dir gleich noch an ...
Member: colinardo
Solution colinardo Oct 20, 2014 updated at 13:56:53 (UTC)
Goto Top
das läuft problemlos auf einem XP und sonstigen ...
$path = 'c:\ordner'  
dir "$path\*.txt" | %{([regex]'3\d{6}').Matches((gc $_.Fullname)) | select -Expand Value | out-file $_.FullName -Force}  

p.s. soll bei keinem Fund das File geleert werden, oder es so gelassen werden wie es ist?
Member: hooligen110
hooligen110 Oct 20, 2014 at 13:44:44 (UTC)
Goto Top
Wunderbar! ^_^ Jetzt klappts!! face-smile) *freu*
Ich habe schon sooo lange nach einer Lösung dafür gesucht *-*


Ja, das wäre das Praktischste in meinen Augen.
Member: colinardo
Solution colinardo Oct 20, 2014 updated at 13:52:10 (UTC)
Goto Top
Zitat von @hooligen110:
Ja, das wäre das Praktischste in meinen Augen.
macht es bereits.

Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Member: hooligen110
hooligen110 Oct 20, 2014 at 13:53:22 (UTC)
Goto Top
Ein riesiges DANKESCHÖN von meiner Seite aus ^_^

Ich setze es auf gelöst face-smile

Echt toll dieses Forum face-smile schnelle Lösung,freundlicher und kompetenter Umgang und macht Lust auf mehr face-smile