I saw this Powershell statement in a recent Hanselminutes post -
cat test.txt | foreach-object {$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x} | sort | get-unique
I'm trying to learn Powershell at the moment and I think that I understand most of what is going on -
- The statement loops through each line of 'test.txt' and runs a regex against the current line
- All the results are collated and then sorted and duplicates removed
My understanding seems to fall down on this part of the statement -
$null = $_ -match '<FancyPants>(?<x>.*)<.FancyPants>'; $matches.x
- What is the '
$null =
' part of the code doing, I suspect this is to handle a scenario when no match is returned but I'm not sure how it works? - Is '
$matches.x
' returning the matches found?