Verwenden von Powershell wie kann ich die Anzahl der vorkommen jedes einzelnen Elements in einem array?
Wenn ich habe ein array:
1 1 1 2 2 3 4 4 4 4 5 5
Wie kann ich Powershell verwenden, um mir zu sagen, wie viel von jedem element gibt es in diesem array?
Werden ein wenig klarer, ich sollte eine separate Zählung für jedes array-element:
Element:Count
1:3
2:2
3:1
4:4
5:2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
Group-Object
cmdlet:Wenn Sie möchten, eine hashtable für die Elemente und Ihr zählt, Sie brauchen nur ein wenig
ForEach-Object
nach:Können Sie die Ausgabe und format, wie Sie möchten:
-AsHashTable
ist wenig hilfreich.$ht['#'].count
imSystem.Collections.Hashtable
es enthält eine Methode namenscount
Joey ' s hilfreiche Antwort gibt die entscheidenden Zeiger: verwenden Sie die
Group-Objekt
- cmdlet der Gruppe input-Objekte durch Gleichheit.(Um diese Gruppe von einem oder mehreren Ihrer Eigenschaft Werte verwenden Sie stattdessen
-Property
).Group-Object
Ausgänge[Microsoft.PowerShell.Befehle.GroupInfo]
Objekte, die jeweils ein Gruppe gleicher input-Objekten, deren Bemerkenswerte Eigenschaften sind:.Values
... den Wert(N), die Gruppe definieren, als[System.Collections.ArrayList]
Instanz (die hat nur 1 element in dem Fall bei der hand, da die Eingabe-Objekte als ganzes werden verwendet, um die form der Gruppen)..Count
... die Anzahl der Objekte in dieser Gruppe.Wenn, wie in diesem Fall, gibt es keine Notwendigkeit zu sammeln, die die einzelnen Mitglieder der Gruppe als Teil der jeweiligen Gruppe,
-NoElement
können verwendet werden, für die Effizienz.Du bist frei, um weiteren Prozess die Objekte der Gruppe erforderlich, um die spezifischen output-format festgelegt, die in Ihrer Frage, die Sie verwenden können
Select-Object
mit einem berechnete Eigenschaft.Setzen Sie alle zusammen: