Text in Dateien suchen Zeichen kommt mindestens 3 mal vor
Moderators: Hacker, Stefan2, white
Text in Dateien suchen Zeichen kommt mindestens 3 mal vor
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.
Ich möchte alle ZIP Dateien nach Zeichen kommt mindestens n-mal vor durchsuchen und listen.
Hallo,
mit einem Plugin kann ich zwar auch nicht dienen, aber vielleicht hilft dir eine Batch-Datei mit folgendem Inhalt ein Stück weiter:
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ß
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)
Gruß
Wenn es nur um die schon entpackten Dateien ginge, könnte man das sicher so machen. Müsste man eben anschließend wieder packen.
Beachte bitte, dass bei dieser Variante weder im Suchstring noch in den Dateinamen Leerzeichen auftreten dürfen.
Gruß
regex
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")
Gruß
regex
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.
Mit einem unzip (oder wohl auch unrar), das mit dem Parameter -l die enthaltenen Dateien auflistet, sollte so etwas gehen:
Gruß
regex
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\)
regex