2016-10-18 2 views
1

Ich habe mehrere Textdateien in einem Ordner. Für jeden einzelnen möchte ich nach 3 verschiedenen Strings suchen und die Zählungen dieser Strings zusammenfügen und sie dann in eine Datei ausgeben.Zählen von Vorkommen mehrerer Strings in mehreren Dateien

Dies funktioniert für eine einzelne Zeichenfolge in den verschiedenen Dateien zählen:

for /f "delims==" %%a in ('dir /b "%CD%\*.txt"') do findstr /r /n "^.*SEARCH_STRING_1.*$" "%%~dpnxa" | find /c "SEARCH_STRING_1" >> "%%~dpacounts.txt" 

Daraus ergibt sich eine Datei mit einer Zählung auf einer neuen Zeile für jede Datei im Ordner. Wie kann ich nach "SEARCH_STRING_1", "SEARCH_STRING_2" und "SEARCH_STRING_3" suchen, die Zählwerte zusammenaddieren und sie auf die gleiche Weise in die Datei ausgeben?

+1

Wenn eine Zeile enthält mehr als eine Zeichenfolge, sollte es als ein oder mehrere gezählt werden? –

+0

mehr nehme ich an, aber das würde nicht passieren in den Dateien, die ich habe mit – Aeon2058

Antwort

2

Wenn eine Zeile mit zwei Spielen sollte als nur eine gezählt werden oder, wenn es keine Möglichkeit einer Zeile mehr als eine Übereinstimmung

enthalten ist
findstr /c:"string1" /c:"string2" /c:"string3" *.txt | find /c /v "" > counts.txt 

Wenn eine Zeile mehr als eine Übereinstimmung enthalten könnte und jedes Spiel muss gezählt werden

(
    findstr /c:"string1" *.txt 
    findstr /c:"string2" *.txt 
    findstr /c:"string3" *.txt 
) | find /c /v "" > counts.txt 

natürlich passen die findstr Schalter auf Ihre Bedürfnisse

+0

der erste funktioniert gut, bis ich die '| hinzufügen finde/c/v "" 'bit. Dann wirft es eine Menge von 'der Prozess kann nicht auf die Datei zugreifen, da es von einem anderen Prozess verwendet wird. FINDSTR: Schreibfehler '. Es funktioniert gut in dem Befehl, den ich in meiner Frage aufgelistet habe, aber nicht mit mehreren Suchzeichenfolgen? – Aeon2058

+0

@ Aeon2058, getestet und funktioniert. Wenn ich wetten muss, gibt es ein Syntaxproblem in Ihrer Befehlszeile oder Sie haben einen anderen Befehl, der in die Ausgabedatei schreibt. –

Verwandte Themen