我有一个管道分隔的平面文件,我需要根据对象对条目进行重复数据删除,具体来说文件的一部分是:
"001A"|"1"|"*"||"A"|"504367667"|"1"|"2005-06-10-16.57.23.000000"|
"001A"|"1"|"*"||"A"|"504367667"|"1"|"2005-10-24-16.52.29.000000"|
"001A"|"1"|"*"||"A"|"504367667"|"1"|"2007-12-13-15.48.47.000000"|
"001A"|"1"|"*"||"A"|"504367667"|"1"|"2008-12-09-17.10.39.000000"|
"001B"|"1"|"*"||"B"|"800026800"|"1"|"2005-08-08-10.48.16.000000"|
"001C"|"1"|"*"||"C"|"490349139"|"1"|"2006-01-19-12.03.08.000000"|
"001C"|"1"|"*"||"C"|"490349139"|"1"|"2009-03-12-15.08.11.000000"|
第一个字段是 ID,最后一个字段是时间戳,我想对条目进行重复数据删除,以便每个 ID 只保留最新的时间戳条目。所以,我需要的输出应该是:
"001A"|"1"|"*"||"A"|"504367667"|"1"|"2008-12-09-17.10.39.000000"|
"001B"|"1"|"*"||"B"|"800026800"|"1"|"2005-08-08-10.48.16.000000"|
"001C"|"1"|"*"||"C"|"490349139"|"1"|"2009-03-12-15.08.11.000000"|
我读取了文件并将条目存储在具有不同对象名称的数组中,然后我尝试了
$inputdeduped = $inputfilearray | Sort-Object Date
$inputdeduped = $inputdeduped | Select-Object ID -Unique
希望一旦对日期进行排序,这里用作 -unique 的 get-unique cmdlet 将选择排序数组中重复条目的第一个或最后一个,因此取决于我将以 desc 或 asc 顺序对日期进行排序,但是它不会随机选择一个条目。
请帮助我或帮助我了解 get-unique cmdlet 的工作原理。