当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-Unique (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:06:18 浏览:15 分类:玩电脑

Get-Unique (Microsoft.PowerShell.Utility)


Get-Unique

模块 :Microsoft.PowerShell.Utility

从排序列表中返回唯一的项目。

句法

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

描述

Get-Unique cmdlet 将排序列表中的每个项目与下一个项目进行比较,消除重复项,并仅返回每个项目的一个实例。必须对列表进行排序才能使 cmdlet 正常工作。

默认情况下,Get-Unique 区分大小写。因此,仅字符大小写不同的字符串被认为是唯一的。

示例

示例 1:获取文本文件中的唯一单词

这些命令查找文本文件中唯一单词的数量。

$A = $( foreach ($line in Get-Content C:\Test1\File1.txt) {
    $line.tolower().split(" ")
  }) | Sort-Object | Get-Unique
$A.count

第一个命令获取 File.txt 文件的内容。它将每行文本转换为小写字母,然后将每个单词在空格 (" ") 处分割成单独的行。然后,它按字母顺序(默认)对结果列表进行排序,并使用 Get-Unique cmdlet 消除任何重复的单词。结果存储在 $A 变量中。

第二个命令使用 $A 中字符串集合的 Count 属性来确定 $A 中有多少项。

示例 2:获取数组中唯一的整数

此命令查找整数集的唯一成员。

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

第一个命令采用在命令行中键入的整数数组,将它们通过管道传送到 Sort-Object cmdlet 进行排序,然后通过管道将它们传送到 Get-Unique,其中消除重复条目。

示例 3:获取目录中唯一的对象类型

此命令使用 Get-ChildItem cmdlet 检索本地目录的内容,其中包括文件和目录。

Get-ChildItem | Sort-Object {$_.GetType()} | Get-Unique -OnType

管道运算符 (|) 将结果发送到 Sort-Object cmdlet。 $_.GetType() 语句将 GetType 方法应用于每个文件或目录。然后,Sort-Object 按类型对项目进行排序。另一个管道运算符将结果发送到Get-UniqueOnType 参数指示 Get-Unique 仅返回每种类型的一个对象。

示例 4:获取独特的流程

此命令获取计算机上运行的进程名称并消除重复项。

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

Get-Process 命令获取计算机上的所有进程。管道运算符 (|) 将结果传递给 Sort-Object,默认情况下,它按 ProcessName 的字母顺序对进程进行排序。结果通过管道传送到 Select-Object cmdlet,该 cmdlet 仅选择每个对象的 ProcessName 属性的值。然后将结果通过管道传送到Get-Unique 以消除重复项。

AsString 参数告诉 Get-UniqueProcessName 值视为字符串。如果没有此参数,Get-Unique 会将 ProcessName 值视为对象,并仅返回该对象的一个实例,即列表中的第一个进程名称。

示例 5:使用区分大小写的比较来获取唯一字符串

此示例使用不区分大小写的比较从字符串数组中获取唯一的字符串。

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object -CaseSensitive | Get-Unique

aa
Aa
bb
Bb

示例 6:使用不区分大小写的比较来获取唯一字符串

此示例使用不区分大小写的比较从字符串数组中获取唯一的字符串。

"aa", "Aa", "Bb", "bb", "aa" | Sort-Object | Get-Unique -CaseInsensitive

aa
Bb

参数

-AsString

指示此 cmdlet 使用字符串形式的数据。如果没有此参数,数据将被视为对象,因此当您向 Get-Unique 提交相同类型的对象集合(例如文件集合)时,它仅返回一个(第一个) 。您可以使用此参数查找对象属性的唯一值,例如文件名。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-CaseInsensitive

默认情况下,Get-Unique 区分大小写。使用此参数时,cmdlet 将使用不区分大小写的比较。

此参数是在 PowerShell 7.4 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-InputObject

指定 Get-Unique 的输入。输入包含对象的变量或键入获取对象的命令或表达式。

此 cmdlet 将使用 InputObject 提交的输入视为集合。它不会枚举集合中的单个项目。由于集合是单个项目,因此使用 InputObject 提交的输入始终会原样返回。

类型 :

PS对象

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-OnType

指示此 cmdlet 仅返回每种类型的一个对象。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

PSObject

您可以将任何类型的对象通过管道传输到此 cmdlet。

输出

PSObject

此 cmdlet 返回其输入对象且不重复。

笔记

PowerShell 包含以下 Get-Unique 别名:

  • 所有平台:

      gu

    有关更多信息,请参阅 about_Aliases。

    要对列表进行排序,请使用 Sort-Object。您还可以使用 Sort-ObjectUnique 参数来查找列表中的唯一项目。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯