如下说明是翻译PowerShell中: help Get-Unique 产生的帮助信息.
译者: Edengundam(马涛)
Get-Unique
大纲
从排序的列表中返回唯一项.
语法
Get-Unique [-inputObject <psobject>] [-asString] [<CommonParameters>]
Get-Unique [-inputObject <psobject>] [-onType] [<CommonParameters>]
详细描述
Get-Unique cmdlet将排序过的列表中的项与下一项进行比较, 消除重复的项, 每一项只返回唯一的实例. Cmdlet要正常的工作, 输入列表必须经过排序.
参数
-inputObject <psobject>
为Get-Unique接受输入对象. 输入一个包含对象的变量, 或者一个能够产生对象的命令或表达式.
Get-Unique将通过InputObject输入的对象看做是一个集合; 此命令不会对集合中的独立的项进行枚举. 因为集合是一个单独的项, 通过InputObject提交的输入, 总是保持原样输出.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
true (根据值)
|
允许通配符扩展?
|
false
|
-asString <SwitchParameter>
将数据看做字符串. 不使用此参数时, 数据被看做对象, 当提供给Get-Unique的集合中对象类型相同时(例如: 包含文件对象的集合), 此命令只返回一个对象(第一个). 通过使用此参数你可以在对象属性中查找唯一值, 例如文件对象的文件名称.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-onType <SwitchParameter>
每一个类型只返回一个对象.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
输入类型
Any
返回类型
Any
注意
更多信息, 输入"Get-Help Get-Unique -detailed". 需要技术信息, 输入"Get-Help Get-Unique -full".
对列表进行排序, 使用Sort-Object. 你也可以使用Sort-Object的Unique参数在列表中查找唯一项.
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
你可以使用Get-Unique内建别名"gu". 需要更多信息, 查看About_Alias.
例1
C:/PS>$a = $(foreach ($line in get-content C:/Test1/File1.txt) {$line.tolower().split(" ")}) | sort | get-unique
$a.count
这些命令可以找到文本文件中唯一单词的个数.
第一个命令取得文件File.txt的内容. 它将文本的每一行转换为小写形式, 并将每个空格(" ")分隔的单词分割成独立的行. 接下来, 接下来按照字母序(默认)对结果排序, 再使用Get-Unique cmdlet消除所有重复的单词. 结果被存储在变量$a中.
第二个命令使用存储在$a中字符串集合上的属性Count来确定$a中包含的项数.
例2
C:/PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique
此命令从整数集合中找出唯一的成员. 第一个命令接受的命令行输入的整数类型数组, 将它们通过管道发送给Sort-Object cmdlet进行排序, 接下来将结果发送给Get-Unique, 后者消除所有重复项.
例3
C:/PS>get-childitem | sort-object {$_.GetType()} | unique -OnType
此命令使用Get-ChildItem cmdlet检索本地目录的内容(包括文件和目录). 管道运算符(|)将结果发送给Sort-Object cmdlet. 语句"$_.GetType()"执行每个文件或目录对象上GetType方法. 接下来, Sort-Object根据类型进行排序. 另一个管道将结果发送给Get-Unique. 参数OnType指示Get-Unique每个类型只返回一个对象.
例4
C:/PS>get-process | sort-object | select processname | get-unique -asstring
此命令取得消除重复名称后计算机上运行的进程名称列表.
Get-Process取得计算机上所有的进程. 管道运算符将结果传递给Sort-object, 默认下后者按照字母顺序对进程对象的ProcessName属性进行排序. 结果被发送到Select-Object cmdlet, 后者将只返回每个对象的ProcessName属性. 结果最后通过管道发送给Get-Unique消除重复项.
参数AsString指示Get-Unique将ProcessName的值当作字符串. 当不指定此参数时, Get-Unique将ProcessName的值当作对象, 只会返回该对象的一个实例, 在这里, 就是第一个进程的名称(译注: 字符串类型).
相关链接
Select-Object
Sort-Object