benutzte ich die folgenden Schritte, um eine Zeichenfolge aus der Datei in allen LinienAbrufen zweiten Teil einer Linie, wenn der erste Teil entspricht genau
$variable = '[email protected]'
$test = $variable.split('@')[0];
$file = Get-Content C:\Temp\file1.txt | Where-Object { $_.Contains($test) }
$postPipePortion = $file | Foreach-Object {$_.Substring($_.IndexOf("|") + 1)}
Dies führt abzurufen, die $test
als Teil enthalten. Ich möchte nur, dass das Ergebnis nur die Zeilen enthält, die exakt mit $test
übereinstimmen.
Zum Beispiel, wenn eine Datei enthält
abc_def|hf#23$
abc|ohgvtre
Ich will nur den Text ohgvtre
Ich folge dir nicht. Warum sollten Sie die Saite überhaupt aufteilen? Warum nicht einfach nach 'abc @ yahoo.com' suchen? –
@briantist Kein Duplikat. [Diese Frage] (http://stackoverflow.com/questions/18877580/powershell-and-the-contains-operator) geht es um den Operator, der nicht an Zeichen in Strings arbeitet. Dieser benutzt korrekt die .NET 'String.Contains' Methode um Teilstrings zu vergleichen. Das Problem besteht darin, dass OP eine exakte Übereinstimmung und keine Teilstring-Übereinstimmung wünscht, daher sind beide Formen von "contains" falsch. –
@RyanBemrose du hast recht; Ich habe meine enge Abstimmung zurückgezogen. – briantist