Comment puis-je supprimer les doublons d'un tableau PowerShell?
$a = @(1,2,3,4,5,5,6,7,8,9,0,0)
arrays
powershell
Eric Schoonover
la source
la source
Get-Unique
(ougu
) si votre tableau est déjà trié.-u
.select -u
J'utiliserais ceci sur une ligne de commande, mais écrit dans un code, il est suggéré d'utiliser le libellé PS complet:Select-Object -Unique
Une autre option consiste à utiliser
Sort-Object
(dont l'alias estsort
, mais uniquement sous Windows) avec le-Unique
commutateur, qui combine le tri et la suppression des doublons:la source
Au cas où vous voudriez être complètement bombardé, voici ce que je vous conseillerais:
Production:
Cela utilise le
Property
paramètre pour commencer parTrim()
les chaînes, donc les espaces supplémentaires sont supprimés, puis ne sélectionne que les-Unique
valeurs.Plus d'infos sur
Sort-Object
:la source
Get-Unique
n'a pas fonctionné parce que les espacesCela fonctionne avec insensible à la casse, supprimant ainsi les chaînes en double avec des cas différents. J'ai résolu mon problème.
Les sorties ci-dessus:
la source
Si la liste est triée, vous pouvez utiliser l' applet de commande Get-Unique :
la source
Avec ma méthode, vous pouvez supprimer complètement les valeurs en double, vous laissant avec des valeurs du tableau qui ne comptaient que 1. Il n'était pas clair si c'était ce que l'OP voulait réellement, mais je n'ai pas pu trouver un exemple de cette solution en ligne, donc C'est ici.
la source
Que vous utilisiez
SORT -UNIQUE
,SELECT -UNIQUE
ouGET-UNIQUE
de Powershell 2.0 à 5.1, tous les exemples donnés sont sur des tableaux de colonnes simples. Je n'ai pas encore réussi à faire fonctionner cela sur des tableaux avec plusieurs colonnes pour SUPPRIMER les lignes en double pour laisser des occurrences uniques d'une ligne à travers lesdites colonnes, ou développer une solution de script alternative. Au lieu de cela, ces applets de commande n'ont renvoyé que des lignes dans un tableau qui se sont produites UNE FOIS avec une occurrence singulière et ont vidé tout ce qui avait un doublon. En règle générale, je dois supprimer les doublons manuellement de la sortie CSV finale dans Excel pour terminer le rapport, mais parfois je voudrais continuer à travailler avec lesdites données dans Powershell après avoir supprimé les doublons.la source