Comment supprimer les valeurs dupliquées d'un tableau PowerShell

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

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.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Article connexe - PowerShell Array