Powershell erstellt eine kommagetrennte Liste aus einem Array von IPs, die $ N-mal vorkommen

8

Überall wo ich nachgesehen habe, habe ich Methoden gezeigt, die mit physischen Dateien arbeiten, aber aus irgendeinem Grund nicht mit einem Array. Ich möchte diese Daten lieber nicht speichern, dann aus einer Datei aufrufen und einfach mit dem Array arbeiten, wenn das möglich ist. Ich stehe mit PowerShell v2 fest, aber das sollte noch machbar sein. Ich schätze jede Hilfe im Voraus.

Ich habe ein Array namens $net_final mit den folgenden Werten:

%Vor%

Ich mache dann folgendes, um eine Liste von IPs zu erhalten, die 5 oder öfter in diesem Array vorkommen:

($net_final | Group-Object | Where-Object {$_.Count -ge 5} | Format-Table -HideTableHeaders -Property Name | Out-String).Trim()

Was mir diese Ausgabe bringt:

%Vor%

Allerdings kann ich nicht scheinen, dass sie in der gleichen Zeile durch Kommas getrennt sind. Eine kommagetrennte Liste nur aus dem Array zu machen, ist ziemlich unkompliziert mit Dingen wie $net_final -Join "," und ($net_final | Select-Object -Unique) -Join "," , aber ich muss Array-Elemente greifen, die $ N oft vorkommen.

Erwartete Ausgabe :

64.339.161.5,19.19.19.19,63.339.161.7

    
beardedeagle 01.05.2014, 22:40
quelle

3 Antworten

29

Hier geht's, ein nettes kleines Einzeiler für Sie:

%Vor%

Das wird ausgeben:

%Vor%     
TheMadTechnician 01.05.2014, 22:50
quelle
8

Ich hatte Probleme mit dieser Lösung von TheMadTechnician, fand aber Folgendes großartig:     $ my_array -join ","

    
mgood1 15.10.2014 19:49
quelle
1

Noch schneller / einfacher zu lesen:

%Vor%

1,2,3,7

Sie können ein beliebiges Array mit dem Flag -unique zur Sortierung leiten. Die eingepackte Variable kann dann mit Ihrem bevorzugten Trennzeichen verknüpft werden.

    
user3166350 03.01.2017 19:05
quelle