如何根据多列过滤pscustomobject
How to filter pscustomobject on the basis of multiple columns
我有一个 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 *
编辑:我忘了说,描述可能会随着时间的推移而改变,解释我的动机
使用Import-Csv
代替Get-Content
Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description
和 Group-Object code
然后按组内的日期排序,只是 select 最后一个
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 *
我有一个 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 *
编辑:我忘了说,描述可能会随着时间的推移而改变,解释我的动机
使用Import-Csv
代替Get-Content
Import-Csv $Global:costAllocationFile -Delimiter ';' -Header Code,Date,Description
和 Group-Object code
然后按组内的日期排序,只是 select 最后一个
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 *