Art Vandelay
Lieutenant
- Registriert
- Apr. 2020
- Beiträge
- 802
Hallo Leute,
ich bin auf der Suche nach einer Optimierung für meinen Workflow.
Ich muss für den Job häufig in vorliegenden Text Dateien nach bestimmten Strings suchen. Das können pro Tag gerne mal 10.000 Dateien sein.
Kein Problem:
Die Ausgabe sind dann alle Text Dateien mit Namen und dem gesuchten Inhalt "TEXT1"
Nun suche ich jedoch in dieser Ergebnismenge nach einem String "TEXT2", da ich dies mit select-string nicht verketten kann, kopiere ich mir die Ergebnismenge aus dem obigen code in ein Temp Verzeichnis und suche dann in einem zweiten Suchlauf in diesen Dateien nach meinem "TEXT2" String
Mein Ansatz um dies zu optimieren wäre statt select-string, get-content zu benutzen. Das hier funktioniert und bringt mir einen ähnlichen output wie oben (nur leider ohne Dateinamen):
Nun die Idee hier beide Abfragen zu kombinieren
Nur hier ist die Ausgabe immer leer, obwohl es definitiv Dateien mit beiden Strings gibt.
Denke ich falsch, oder was könnte ich noch tun um meine Suche in einer Abfrage zu erfüllen?
Viele Grüße
ich bin auf der Suche nach einer Optimierung für meinen Workflow.
Ich muss für den Job häufig in vorliegenden Text Dateien nach bestimmten Strings suchen. Das können pro Tag gerne mal 10.000 Dateien sein.
Kein Problem:
Code:
Select-string -pattern "TEXT1" -path c:\dir1\*.txt
Nun suche ich jedoch in dieser Ergebnismenge nach einem String "TEXT2", da ich dies mit select-string nicht verketten kann, kopiere ich mir die Ergebnismenge aus dem obigen code in ein Temp Verzeichnis und suche dann in einem zweiten Suchlauf in diesen Dateien nach meinem "TEXT2" String
Code:
Select-string -pattern "TEXT1" -path c:\dir1\*.txt | copy-item -destination c:\tmpdir1
Select-string -pattern "TEXT2" -path c:\tmpdir1\*.txt
Mein Ansatz um dies zu optimieren wäre statt select-string, get-content zu benutzen. Das hier funktioniert und bringt mir einen ähnlichen output wie oben (nur leider ohne Dateinamen):
Code:
get-content -path c:\dir1\*.txt | where {$_ -match "TEXT1"}
Nun die Idee hier beide Abfragen zu kombinieren
Code:
get-content -path c:\dir1\*.txt | where {$_ -match "TEXT1" -and $_ -match "TEXT2"}
Denke ich falsch, oder was könnte ich noch tun um meine Suche in einer Abfrage zu erfüllen?
Viele Grüße