2017-10-16 105 views
0

對於下面的CSV文件,我想在文件中搜索每種類型的Fruit並通過PowerShell顯示最後一個條目。我試過以下,但我得到一個空白輸出。PowerShell foreach選擇字符串查詢

$fruits = Import-Csv Fruits.csv | select Fruit | sort-object -Property Fruit -Unique 

foreach ($fruit in $fruits) 
{ 
Import-CSV Fruits.csv | Select-String -Pattern $fruit 
} 

Fruits.csv文件:

Fruit, Weight 
Apple, 3 pounds 
Apple, 4 pounds 
Apple, 10 pounds 
Orange, 3 pounds 
Kiwi, 3 pounds 
Grape, 2 pounds 
Orange, 13 pounds 
Grape, 3 pounds 
Apple, 6 pounds 
Apple, 2 pounds 

預期輸出:

Apple, 2 pounds 
Orange, 3 pounds 
Kiwi, 3 pounds 
Grape, 2 pounds 

任何人都可以在解決這個幫助嗎?

回答

3

您的預期輸出可能是錯誤自上次橙色計數是。

總之,您可以使用Group-Object cmdlet來組你的結果基礎上,Fruit財產和使用-1指數選擇的最後一個條目:

Import-Csv Fruits.csv | 
    Group Fruit | 
    ForEach-Object { 
     $_.Group[-1] 
    } 

輸出:

Fruit Weight 
----- ------ 
Apple 2 pounds 
Orange 13 pounds 
Kiwi 3 pounds 
Grape 3 pounds 
+0

感謝那些訣竅! – PowershellNewbie

+0

不客氣。你的代碼的主要問題是你在'Select-String' cmdlet中使用'$ fruit'而不是'$ fruit.Fruit',因爲這樣你可以檢索當前的水果 –