Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Counting" in an arrays using powershell

Hi I'm trying to count number of arrow where two value are matched.

Here is how i put value in my array :

            $obj | add-member -name "Site" -membertype Noteproperty -value $sitecode
            $obj | add-member -name "Location" -membertype Noteproperty -value $location
            $obj | add-member -name "SwitchName" -membertype Noteproperty -value $swname
            $obj | add-member -name "MacAddress" -membertype Noteproperty -value $mac
            $obj | add-member -name "Interface" -membertype Noteproperty -value $eth
            $obj | add-member -name "Macvendor" -membertype Noteproperty -value ""
            $obj | add-member -name "IP" -membertype Noteproperty -value ""
            $tab += $obj

Now i would like to count each combibation of SwitchName / Interface.

Exemple my arrays can contains the following amongt other value :

Switchname=foo,portX
Switchname=foo,portY
Switchname=foo,portX
Switchname=foo,portZ
Switchname=bar,portX
Switchname=bar,portZ
Switchname=bar,portT

I want to be able to get :

Switchname=foo,portX,2
Switchname=foo,portY,1
Switchname=foo,portZ,1
Switchname=bar,portX,1
Switchname=bar,portZ,1
Switchname=bar,portT,1

I'm currently thinking about using another table to count all of this. Any easier way to do that?

Thanks.

like image 853
Alexandre.L Avatar asked Sep 12 '26 10:09

Alexandre.L


1 Answers

Use the Group-Object cmdlet:

PS C:\> $tab |Group-Object -Property SwitchName,Interface -NoElement

Count Name                     
----- ----                     
    2 foo, portX               
    1 foo, portY               
    1 foo, portZ               
    1 bar, portX               
    1 bar, portZ               
    1 bar, portT               
like image 113
Mathias R. Jessen Avatar answered Sep 14 '26 23:09

Mathias R. Jessen