Powershell 如何基于多列筛选pscustomobject

Powershell 如何基于多列筛选pscustomobject,powershell,csv,filter,pscustomobject,Powershell,Csv,Filter,Pscustomobject,我有一个pscustomobject,我想从中删除项目。每个条目包含3个由分号分隔的值。第一个是代码,第二个是日期,第三个是说明。我想创建一个新的pscustomobject,其中只包含最新的条目(标记为*),或者过滤这个对象中所有的旧条目。有什么帮助吗 $allocationData = get-content $Global:costAllocationFile | sort 942200;20170701;Merk & Design 942200;20171106;Merk &a

我有一个pscustomobject,我想从中删除项目。每个条目包含3个由分号分隔的值。第一个是代码,第二个是日期,第三个是说明。我想创建一个新的pscustomobject,其中只包含最新的条目(标记为*),或者过滤这个对象中所有的旧条目。有什么帮助吗

$allocationData = get-content $Global:costAllocationFile | sort

942200;20170701;Merk & Design
942200;20171106;Merk & Design
942200;20171207;Merk & Design *
942800;20170102;Formule Management
942800;20170327;Formule Management *
943120;20170102;Unit 4
943120;20170911;Unit 4 & retail
943120;20171207;Unit 4
943120;20180402;Unit 4
943120;20180703;Unit 4 *
943300;20170102;Inkoop
943300;20170130;Inkoop
943300;20170717;Inkoop *

编辑:我忘了提到,描述可能会随着时间的推移而改变,解释我的动机

使用
导入Csv
而不是
获取内容

Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description 
然后在组内按日期排序,只需选择最后一个

Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description |
  Group-Object Code | Foreach-Object {
    $_.Group  | Sort-Object Date | Select-Object -Last 1
  }
样本输出:

Code   Date     Description
----   ----     -----------
942200 20171207 Merk & Design *
942800 20170327 Formule Management *
943120 20180703 Unit 4 *
943300 20170717 Inkoop *

使用
Import Csv
而不是
Get Content

Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description 
然后在组内按日期排序,只需选择最后一个

Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description |
  Group-Object Code | Foreach-Object {
    $_.Group  | Sort-Object Date | Select-Object -Last 1
  }
样本输出:

Code   Date     Description
----   ----     -----------
942200 20171207 Merk & Design *
942800 20170327 Formule Management *
943120 20180703 Unit 4 *
943300 20170717 Inkoop *