2015-07-20 68 views
0

即使存在多個不同的行,以下語句也只返回一行。獲取獨特/獨特的值PSObject的某些屬性?

import-csv $fname | select "C1", 'C2' | Get-Unique 

如何獲得所選C1C2的真正獨特的價值?

如果只選擇一個屬性,則可以通過-ExpandProperty來解決問題。我期望它返回與SQL語句select distinct C1, C2 from ....相同的結果。

+0

我認爲你的意思是'-ExpandProperty'。你需要獨特的價值爲個人物產,或獨特的組合? –

+0

正確。謝謝。 – ca9163d9

+0

我需要組合的唯一值。像SQL'從'中選擇不同的C1,C2。 – ca9163d9

回答

4

您可以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 
} 
+0

如果在」C1「或」C2「中有逗號,該怎麼辦? – ca9163d9

+0

@ dc7a9163d9請參閱更新答案 –