2017-10-16 8 views
0

以下のCSVファイルについては、ファイル内のFruitの各タイプを検索し、最後のエントリをPowerShellで表示したいとします。私は以下を試しましたが、空白の出力が得られます。PowerShell foreach select-stringクエリ

$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

最後のオレンジカウントがであるため、予想される出力はおそらくです。です。

とにかく、あなたはFruit性質に基づいてグループにあなたの結果をGroup-Objectコマンドレットを使用して-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

あなたはようこそ。あなたのコードの主な問題は、 '$ fruit.Fruit'ではなく' Select-String'コマンドレットで '$ fruit'を使用していることです –