Get-Unique
Retourne les éléments uniques d'une liste triée.
Syntaxe
Get-Unique
[-InputObject <PSObject>]
[-AsString]
[-CaseInsensitive]
[<CommonParameters>]
Get-Unique
[-InputObject <PSObject>]
[-OnType]
[-CaseInsensitive]
[<CommonParameters>]
Description
L’applet Get-Unique
de commande compare chaque élément d’une liste triée à l’élément suivant, élimine les doublons et retourne une seule instance de chaque élément. La liste doit être triée pour que l'applet de commande fonctionne correctement.
Par défaut, Get-Unique
respecte la casse. Par conséquent, les chaînes qui diffèrent uniquement par la casse sont considérées comme uniques.
Exemples
Exemple 1 : Obtenir des mots uniques dans un fichier texte
Ces commandes recherchent le nombre de mots uniques dans un fichier texte.
$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
$line.tolower().split(" ")
}) | Sort-Object | Get-Unique
$A.count
La première commande obtient le contenu du File.txt
fichier. Il convertit chaque ligne de texte en lettres minuscules, puis fractionne chaque mot sur une ligne distincte à l’espace (" "
). Ensuite, il trie la liste obtenue par ordre alphabétique (valeur par défaut) et utilise l’applet Get-Unique
de commande pour éliminer les mots dupliqués. Les résultats sont stockés dans la $A
variable.
La deuxième commande utilise la propriété Count de la collection de chaînes dans $A
laquelle vous souhaitez déterminer le nombre d’éléments qui $A
se trouvent .
Exemple 2 : Obtenir des entiers uniques dans un tableau
Cette commande recherche les membres uniques de l'ensemble d'entiers.
1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique
1
3
4
5
12
23
4643
La première commande prend un tableau d’entiers tapés sur la ligne de commande, les canalise vers l’applet Sort-Object
de commande à trier, puis les canalise vers Get-Unique
, ce qui élimine les entrées en double.
Exemple 3 : Obtenir des types d’objets uniques dans un répertoire
Cette commande utilise l’applet Get-ChildItem
de commande pour récupérer le contenu du répertoire local, qui inclut des fichiers et des répertoires.
Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType
L’opérateur de pipeline (|
) envoie les résultats à l’applet Sort-Object
de commande. L’instruction $_.GetType()
applique la méthode GetType à chaque fichier ou répertoire. Ensuite, Sort-Object
trie les éléments par type. Un autre opérateur de pipeline envoie les résultats à Get-Unique
. Le paramètre OnType indique Get-Unique
de renvoyer un seul objet de chaque type.
Exemple 4 : Obtenir des processus uniques
Cette commande obtient les noms des processus qui s'exécutent sur l'ordinateur sans doublon.
Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
La Get-Process
commande obtient tous les processus sur l’ordinateur. L’opérateur de pipeline (|
) transmet le résultat à Sort-Object
, qui, par défaut, trie les processus par ordre alphabétique par ProcessName. Les résultats sont redirigés vers l’applet Select-Object
de commande, qui sélectionne uniquement les valeurs de la propriété ProcessName de chaque objet. Les résultats sont ensuite redirigés pour Get-Unique
éliminer les doublons.
Le paramètre AsString indique Get-Unique
de traiter les valeurs ProcessName en tant que chaînes.
Sans ce paramètre, Get-Unique
traite les valeurs ProcessName en tant qu’objets et retourne une seule instance de l’objet, autrement dit, le premier nom du processus dans la liste.
Exemple 5 : Utiliser des comparaisons sensibles à la casse pour obtenir des chaînes uniques
Cet exemple utilise des comparaisons qui ne respectent pas la casse pour obtenir des chaînes uniques à partir d’un tableau de chaînes.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique
aa
Aa
bb
Bb
Exemple 6 : Utiliser des comparaisons ne respectant pas la casse pour obtenir des chaînes uniques
Cet exemple utilise des comparaisons qui ne respectent pas la casse pour obtenir des chaînes uniques à partir d’un tableau de chaînes.
"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive
aa
Bb
Paramètres
-AsString
Indique que cette applet de commande utilise les données sous forme de chaîne. Sans ce paramètre, les données sont traitées comme un objet. Par conséquent, lorsque vous envoyez une collection d’objets du même type, Get-Unique
comme une collection de fichiers, elle retourne une seule (la première). Vous pouvez utiliser ce paramètre pour rechercher les valeurs uniques des propriétés de l'objet, telles que les noms de fichier uniques.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-CaseInsensitive
Par défaut, Get-Unique
respecte la casse. Lorsque vous utilisez ce paramètre, l’applet de commande utilise des comparaisons qui ne respectent pas la casse.
Ce paramètre a été ajouté dans PowerShell 7.4.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputObject
Spécifie l’entrée pour Get-Unique
. Entrez une variable contenant les objets, ou tapez une commande ou une expression qui les obtient.
Cette applet de commande traite l’entrée envoyée à l’aide d’InputObject comme collection. Elle n’énumère pas les éléments individuels de la collection. Étant donné que la collection est un élément unique, l’entrée envoyée à l’aide d’InputObject est toujours retournée inchangée.
Type: | PSObject |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-OnType
Indique que cette applet de commande retourne un seul objet de chaque type.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger n’importe quel type d’objet vers cette applet de commande.
Sorties
Cette applet de commande retourne ses objets d’entrée sans doublons.
Notes
PowerShell inclut les alias suivants pour Get-Unique
:
- Toutes les plateformes :
gu
Pour plus d’informations, consultez about_Aliases.
Pour trier une liste, utilisez Sort-Object
. Vous pouvez également utiliser le paramètre Unique pour Sort-Object
rechercher les éléments uniques d’une liste.