即使存在多个不同的行,以下语句也只返回一行。获取独特/独特的值PSObject的某些属性?
import-csv $fname | select "C1", 'C2' | Get-Unique
如何获得所选C1
和C2
的真正独特的价值?
如果只选择一个属性,则可以通过-ExpandProperty
来解决问题。我期望它返回与SQL语句select distinct C1, C2 from ....
相同的结果。
即使存在多个不同的行,以下语句也只返回一行。获取独特/独特的值PSObject的某些属性?
import-csv $fname | select "C1", 'C2' | Get-Unique
如何获得所选C1
和C2
的真正独特的价值?
如果只选择一个属性,则可以通过-ExpandProperty
来解决问题。我期望它返回与SQL语句select distinct C1, C2 from ....
相同的结果。
您可以Group-Object
实现这一点:如果你需要提取值
Import-Csv $fname | Group-Object -Property 'C1', 'C2' | Select-Object -ExpandProperty Name
,由,
分裂Name
参数:
$Uniques = Import-Csv $fname | Group-Object -Property 'C1', 'C2' | ForEach-Object {
@($_.Name -Split ', ')
}
如果属性不是字符串,或者如果他们包含逗号,可以从每组中选择第一个对象:
$Uniques = Import-Csv $fname | Select-Object 'C1','C2' | Group-Object -Property 'C1', 'C2' | ForEach-Object {
$_.Group | Select-Object -First 1
}
如果在”C1“或”C2“中有逗号,该怎么办? – ca9163d9
@ dc7a9163d9请参阅更新答案 –
我认为你的意思是'-ExpandProperty'。你需要独特的价值为个人物产,或独特的组合? –
正确。谢谢。 – ca9163d9
我需要组合的唯一值。像SQL'从'中选择不同的C1,C2。 – ca9163d9