У меня есть текстовый файл, содержащий очень длинные строки. Мне нужна одна часть информации из каждой строки, и вам нужно увидеть уникальные значения. Моя первоначальная мысль заключалась в том, чтобы использовать Select-String и указать регулярное выражение с группой захвата. Я просмотрел несколько других сообщений, но никто не работал. Здесь быстрый и грязный эквивалент С#:
var text = File.ReadAllText(@"path\File.txt");
var r = new Regex("Path=\"(.*?)\"");
var matches = r.Matches(text);
var h = new HashSet<string>();
foreach(Match match in matches)
{
h.Add(match.Groups[1].Value);
}
foreach (var s in h)
{
Console.WriteLine(s);
}
Как я могу сделать это в PowerShell?
UPDATE:
Проверяя ответы, я понял, что есть дополнительное требование. На исходную строку может быть несколько совпадений. Пример:
Path="One" Path="Two" Path="Two" Path="Three"
Результаты должны быть:
One Two Three