Comment supprimer les valeurs dupliquées d'un tableau PowerShell
-
Utilisez
Select-Object
pour supprimer les valeurs dupliquées d’un tableau PowerShell -
Utilisez
Sort-Object
pour supprimer les valeurs dupliquées d’un tableau PowerShell -
Utilisez
Get-Unique
pour supprimer les doublons d’un tableau PowerShell -
Utilisez
Hashtable
pour supprimer les doublons d’un tableau PowerShell - Conclusion

Les tableaux sont des structures de données fondamentales dans PowerShell qui vous permettent de stocker des collections d’éléments, que ces éléments soient du même type ou de types différents. Dans divers scénarios de script, vous pouvez rencontrer le besoin d’éliminer les éléments en double d’un tableau.
Ce tutoriel présentera différentes méthodes pour supprimer les doublons d’un tableau PowerShell.
Utilisez Select-Object
pour supprimer les valeurs dupliquées d’un tableau PowerShell
Le cmdlet Select-Object
est utilisé pour sélectionner les propriétés spécifiques d’un objet ou d’un ensemble d’objets. Vous pouvez également sélectionner des objets uniques à une position spécifiée dans un tableau.
Le paramètre -Unique
spécifie qu’un seul membre sera sélectionné si des propriétés et des valeurs identiques se trouvent dans des objets. Il est sensible à la casse, donc les chaînes qui ne diffèrent que par la casse des caractères sont également considérées comme des valeurs uniques.
Nous avons créé un tableau $data
ayant des éléments en double avec des différences de casse.
$data = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
L’exemple suivant sélectionne des valeurs uniques du tableau et les enregistre dans la variable $data
. En conséquence, les éléments en double seront supprimés d’un tableau.
Commande :
$data = $data | Select-Object -Unique
$data
Sortie :
powershell
arrays
Arrays
PowerShell
Il supprime la chaîne en double "powershell"
mais ne supprime pas "PowerShell"
car il y a une lettre majuscule dans la chaîne.
Utilisez Sort-Object
pour supprimer les valeurs dupliquées d’un tableau PowerShell
Le cmdlet Sort-Object
trie les objets par ordre croissant ou décroissant en fonction de leurs valeurs de propriété. Avec Sort-Object
, vous pouvez également utiliser le paramètre -Unique
pour supprimer les doublons des objets.
Mais il est insensible à la casse, donc les chaînes qui ne diffèrent que par la casse des caractères sont également considérées comme les mêmes. L’exemple suivant supprime les éléments en double d’un tableau et les enregistre dans la variable $a
.
Commande :
$a = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$a = $a | Sort-Object -Unique
$a
Sortie :
Arrays
PowerShell
Il supprime "Arrays"
et "PowerShell"
, bien qu’ils ne diffèrent que par la casse des caractères. Si vous souhaitez que Sort-Object
soit sensible à la casse, vous pouvez utiliser le paramètre -CaseSensitive
.
Commande :
$b = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$b = $b | Sort-Object -Unique -CaseSensitive
$b
Sortie :
arrays
Arrays
powershell
PowerShell
Maintenant, la sortie ne supprime que "powershell"
puisqu’il s’agit de la seule variable ayant un doublon (sensible à la casse).
Utilisez Get-Unique
pour supprimer les doublons d’un tableau PowerShell
Le cmdlet Get-Unique
obtient des éléments uniques à partir d’une liste triée. Il compare chaque élément d’une liste triée à l’élément suivant, supprime les doublons et retourne seulement un membre de chaque élément.
Ce cmdlet ne fonctionne que si la liste est triée. Vous pouvez utiliser le cmdlet Sort-Object
pour trier les objets par valeurs de propriété.
L’exemple suivant utilise le cmdlet Get-Unique
pour supprimer les éléments dupliqués du tableau $sort
après avoir trié les éléments du tableau avec Sort-Object
.
Commande :
$c = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$c = $c | Sort-Object | Get-Unique
$c
Sortie :
Arrays
arrays
PowerShell
powershell
Dans cette sortie, le "powershell"
est supprimé.
Le Get-Unique
est sensible à la casse, donc les chaînes qui ne diffèrent que par la casse des caractères sont également considérées comme des valeurs uniques. De cette manière, vous pouvez facilement supprimer des éléments en double d’un tableau dans PowerShell.
Utilisez Hashtable
pour supprimer les doublons d’un tableau PowerShell
PowerShell vous permet d’utiliser un Hashtable
pour supprimer efficacement les doublons. Un Hashtable
stocke des paires clé-valeur où les clés sont uniques, et en créant un Hashtable
et en utilisant les éléments du tableau comme clés, vous pouvez automatiquement supprimer les doublons.
L’exemple suivant initialise un Hashtable
vide ($uniqueHash
) puis parcourt le tableau, définissant chaque élément comme une clé dans le Hashtable
. Étant donné que les clés doivent être uniques, les doublons sont automatiquement éliminés.
Le résultat est stocké dans la variable $uniqueArray
.
$array = @("powershell", "arrays", "powershell", "Arrays", "PowerShell")
$uniqueHash = @{}
$array | ForEach-Object { $uniqueHash[$_] = $true }
$uniqueArray = $uniqueHash.Keys
$uniqueArray
Sortie :
powershell
arrays
Dans cette sortie, les doublons sont supprimés en utilisant un Hashtable
et les valeurs restantes sont affichées. Veuillez noter qu’utiliser un Hashtable
pour supprimer les doublons ne prend pas en considération la sensibilité à la casse des valeurs.
Conclusion
Dans PowerShell, gérer les valeurs dupliquées dans les tableaux est une tâche courante, et cet article a présenté plusieurs méthodes pour y parvenir. En utilisant les cmdlets Select-Object
, Sort-Object
, et Get-Unique
, ainsi qu’en utilisant des Hashtables
, vous pouvez adapter votre approche à vos exigences spécifiques, que vous ayez besoin d’une suppression sensible ou insensible à la casse des doublons.