Tengo un archivo de texto que contiene líneas muy largas. Necesito una información de cada línea y necesito ver los valores únicos. Mi idea original era usar Select-String y especificar una expresión regular con un grupo de captura. He visto varias otras publicaciones pero ninguna funcionó. Aquí está el rápido y sucio equivalente de C#:Seleccionar-Cadena a grep, pero solo devolver grupos únicos
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);
}
¿Cómo puedo hacer esto en PowerShell?
ACTUALIZACIÓN:
Prueba de las respuestas, me di cuenta de que hay un requisito adicional. Puede haber múltiples coincidencias por línea de fuente. Ejemplo:
Path="One" Path="Two" Path="Two" Path="Three"
resultados deben ser:
One Two Three
Consulte la actualización anterior. Además, tenga en cuenta que el texto proviene de un archivo. – TrueWill
Actualizado para nuevos requisitos. – mjolinor
Esto funcionó, excepto para el get-unique. Si lo reemplacé con select-object -Unique funcionó perfectamente. Personalmente, me parece más claro que las respuestas '[regex]'. – TrueWill