Partager via


Get-Unique

Retourne les éléments uniques d'une liste triée.

Syntax

Get-Unique
   [-InputObject <PSObject>]
   [-AsString]
   [<CommonParameters>]
Get-Unique
   [-InputObject <PSObject>]
   [-OnType]
   [<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 un seul instance de chaque élément. La liste doit être triée pour que l'applet de commande fonctionne correctement.

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 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 de Get-Unique commande pour éliminer les mots en double. 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 pour déterminer le nombre d’éléments dans $A.

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 dirige vers l’applet Sort-Object de commande à trier, puis les envoie 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 comprend 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 de Sort-Object 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 ne retourner qu’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 selon ProcessName. Les résultats sont dirigé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 dirigés vers Get-Unique pour éliminer les doublons.

Le paramètre AsString indique Get-Unique de traiter les valeurs ProcessName comme des chaînes. Sans ce paramètre, Get-Unique traite les valeurs ProcessName comme des objets et retourne un seul instance de l’objet, c’est-à-dire le premier nom de processus dans la liste.

Paramètres

-AsString

Indique que cette applet de commande utilise les données comme 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, par exemple une collection de fichiers, elles n’en retournent qu’un seul (le premier). 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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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. il 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
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OnType

Indique que cette applet de commande ne retourne qu’un seul objet de chaque type.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

PSObject

Vous pouvez diriger n’importe quel type d’objet vers cette applet de commande.

Sorties

PSObject

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 de Sort-Object pour rechercher les éléments uniques dans une liste.