vi esta declaración Powershell en una reciente Hanselminutes post -
cat test.txt | foreach-object {$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x} | sort | get-unique
Estoy tratando de aprender Powershell en el momento y creo que entiendo más de lo que está pasando -
- la declaración recorre cada línea de 'test.txt' y se ejecuta una expresión regular en contra de la línea actual
- Todos los resultados se recogen y clasifican y se eliminan los duplicados
Mi entendimiento parece caer abajo en esta parte de la declaración -
$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x
- Cuál es la '
$null =
' parte del código haciendo, sospecho que esto es para manejar un escenario cuando hay coincidencia se devuelve pero no estoy seguro de cómo funciona ? - ¿Está '
$matches.x
' devolviendo las coincidencias encontradas?
Entonces '$ matches.x' contiene las coincidencias para el objeto actual, ¿PS clasifica automáticamente todos los conjuntos de resultados' $ matches' en un gran conjunto de resultados? – ipr101
@ ipr101 No, solo guarda la última coincidencia. He actualizado mi respuesta con un ejemplo que puede usar para ver lo que está en la variable '$ Matches'. – Rynant
gracias que tiene más sentido ahora – ipr101