Text in Dateien suchen Zeichen kommt mindestens 3 mal vor

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Sync
Junior Member
Junior Member
Posts: 12
Joined: 2010-02-13, 10:08 UTC

Text in Dateien suchen Zeichen kommt mindestens 3 mal vor

Post by *Sync »

Wie kann ich Text Suchen in Dateien anwenden, wenn ich einen Suchwert suche, welche in jeder datei mindestens 3 mal vorkommen muss.

Ich möchte alle ZIP Dateien nach Zeichen kommt mindestens n-mal vor durchsuchen und listen.
User avatar
Peter
Power Member
Power Member
Posts: 2068
Joined: 2003-11-13, 13:40 UTC
Location: Schweiz

Post by *Peter »

Ich weiss nicht, aber vielleicht so auf die Art "*a*a*a*" für den Buchstaben "a", und wenn das nicht direkt klappt, dann mit RegEx und/oder Textplugins?

Peter
TC 10.xx / #266191
Win 10 x64
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Geht mit dem TCmd selbst nicht. Ein spezielles Plugin koennte dies tun. Mir ist dafuer allerdings keines bekannt.
"War is evil, in so far as it makes more bad people than it takes away."
Immanuel Kant in "Perpetual Peace"
Sync
Junior Member
Junior Member
Posts: 12
Joined: 2010-02-13, 10:08 UTC

Post by *Sync »

Kennt jemand hier so ein Plugin?
regex
Junior Member
Junior Member
Posts: 39
Joined: 2007-07-19, 07:30 UTC

Post by *regex »

Hallo,

mit einem Plugin kann ich zwar auch nicht dienen, aber vielleicht hilft dir eine Batch-Datei mit folgendem Inhalt ein Stück weiter:

Code: Select all

@echo off
:: Aufruf: finde_mind_drei suchstring *.txt
:: Das ist eine Zeile
for %%f in (%2) do (for /f "usebackq delims=: tokens=1,2" %%j in ( `find /c "%1" "%%f" `) do  if  %%k geq 3 echo %%j)
find gibt allerdings die Erfolgsanzahl nur für das Finden in unterschiedlichen Zeilen an. Mehrfaches finden in einer Zeile wird dabei nicht berücksichtigt.

Gruß
Sync
Junior Member
Junior Member
Posts: 12
Joined: 2010-02-13, 10:08 UTC

Post by *Sync »

Das hilft mir etwas weiter. Ich möchte aber sämtliche Dateien mit Endung ZIP und RAR in eimem Verzeichnis nach dem Inhalt durchsuchen und diese dann alle in ein anderes Verzeichnis verschieben.
regex
Junior Member
Junior Member
Posts: 39
Joined: 2007-07-19, 07:30 UTC

Post by *regex »

Wenn es nur um die schon entpackten Dateien ginge, könnte man das sicher so machen. Müsste man eben anschließend wieder packen.

Code: Select all

::@echo off
:: Aufruf: finde_mind_drei suchstring *.txt d:\daten\ziel\
for %%f in (%2) do (for /f "usebackq tokens=1-3 delims=: " %%j in ( `find /c "%1" "%%f" `) do  if  %%l geq 3 move "%%k" "%3")
Beachte bitte, dass bei dieser Variante weder im Suchstring noch in den Dateinamen Leerzeichen auftreten dürfen.

Gruß

regex
Sync
Junior Member
Junior Member
Posts: 12
Joined: 2010-02-13, 10:08 UTC

Post by *Sync »

Ich möchte im Prinzip alle ZIP, RAR Dateien verschieben, welche mindestens drei *.txt files enthalten. Deshalb war meine Idee, das ZIP File selber nach .txt zu durchsuchen, was grundsätzlich auch funktioniert. Das einzige Problem ist, dass wenn in einem File im ZIP File mehrmals .txt.txt steht das ZIP File auch verschoben wird. Im prinzip würde es reichen nur das ZIP, RAR Directory nach *.txt zu durchsuchen. Am Schluss werden dann alle ZIP, RAR Dateien, welche mindestens drei *.txt files beinhalten in ein anderes Verzeichnis verschoben.
regex
Junior Member
Junior Member
Posts: 39
Joined: 2007-07-19, 07:30 UTC

Post by *regex »

Mit einem unzip (oder wohl auch unrar), das mit dem Parameter -l die enthaltenen Dateien auflistet, sollte so etwas gehen:

Code: Select all

for %%f in (*.zip) do (for /f "usebackq tokens=1" %%j in ( `unzip -l %%f ^|find /c ".txt" `) do  if  %%j geq 3 move %%f d:\batch\ziel\)
Gruß

regex
Post Reply