Riddle me:Powershell: filtruj zawartość pliku przez tablicę ciągów znaków
Mam plik tekstowy danych. Chcę go odczytać i wyprowadzać tylko linie zawierające dowolny ciąg znaleziony w tablicy wyszukiwanych terminów.
Jeśli ja szukaliśmy jednym ciągiem, chciałbym zrobić coś takiego:
get-content afile | where { $_.Contains("TextI'mLookingFor") } | out-file FilteredContent.txt
Teraz wystarczy dla „TextI'mLookingFor”, aby być tablicą stringów, gdzie jeśli $ _ zawiera dowolny ciąg w tablicy, jest przekazywany w dół do potoku do pliku zewnętrznego.
Jak miałbym to zrobić (a tak przy okazji, jestem programista C# hacking skryptu powershell, więc jeśli istnieje lepszy sposób na mój mecz wyżej niż przy użyciu .Contains(), clue mnie!)
Wybierz ciąg jest prawdopodobnie lepszym wyborem, zwłaszcza dla danych plików. – mjolinor
Po prostu uruchomiłem szybki test, a -match działa lepiej dla dużej liczby powtórzeń (około 15 razy szybciej niż łańcuch wyboru). – mjolinor
Dzięki za zmianę wyrażeń +1. Podałem odpowiedź na odpowiedź łańcuchową ze względu na prostotę. – JMarsch