Partager via


Get-Unique

Retourne des éléments uniques d’une liste triée.

Syntaxe

AsString (Par défaut)

Get-Unique
    [-InputObject <PSObject>]
    [-AsString]
    [-CaseInsensitive]
    [<CommonParameters>]

UniqueByType

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 renvoie 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 dans la casse de caractères sont considérées comme uniques.

Exemples

Exemple 1 : Obtenir des mots uniques dans un fichier texte

Ces commandes trouvent 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 résultante par ordre alphabétique (par défaut) et utilise l’applet Get-Unique de 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 des 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 typés sur la ligne de commande, les dirige vers l’applet Sort-Object de commande à trier, puis les dirige vers Get-Unique, ce qui élimine les doublons.

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 les fichiers et les 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 exploitant de pipeline envoie les résultats à Get-Unique. Le paramètre OnType indique Get-Unique de ne renvoyer qu’un seul objet de chaque type.

Exemple 4 : Obtenir des processus uniques

Cette commande récupère les noms des processus en cours d’exécution sur l’ordinateur avec les doublons éliminés.

Get-Process | Sort-Object | Select-Object ProcessName | Get-Unique -AsString

La Get-Process commande récupère tous les processus de 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 diffusés Get-Unique afin d’é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 ne renvoie qu’une seule instance de l’objet, c’est-à-dire le premier nom de processus de 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, de sorte que lorsque vous soumettez une collection d’objets du même type à Get-Unique, telle qu’une collection de fichiers, elle n’en renvoie qu’un seul (le premier). Vous pouvez utiliser ce paramètre pour rechercher les valeurs uniques des propriétés d’objet, telles que les noms de fichiers.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

AsString
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-InputObject

Spécifie l’entrée pour Get-Unique. Entrez une variable qui contient les objets ou tapez une commande ou une expression qui obtient les objets.

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.

Propriétés du paramètre

Type:PSObject
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-OnType

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

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

UniqueByType
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

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.