根据日期从数组中删除重复项

时间:2013-07-17 22:44:26

标签: powershell

在powershell中,我有一个我从CSV导入的数组,其中包含以下信息

UserName           RecordDate 
@{UserName=user1;  RecordDate=05/18/2013}
@{UserName=user1;  RecordDate=05/18/2012}
@{UserName=user1;  RecordDate=04/18/2013}
@{UserName=user1;  RecordDate=01/18/2013}
@{UserName=user22; RecordDate=05/18/2013}
@{UserName=user22; RecordDate=05/18/2012}
@{UserName=user22; RecordDate=04/18/2013}
@{UserName=user22; RecordDate=01/18/2013}

我想根据日期删除重复的条目,只留下用户名中每个用户的最新日期条目

谢谢!

2 个答案:

答案 0 :(得分:3)

试试这个:

Import-Csv "C:\path\to\your.csv" `
  | select UserName, @{
      n='RecordDate';
      e={[DateTime]::ParseExact($_.RecordDate, 'MM\/dd\/yyyy', $null)}
    } `
  | group UserName `
  | % { $_.Group | sort RecordDate -Desc | select -First 1 }

答案 1 :(得分:1)

您只需将属性转换为DateTime即可正确排序。只需将排序更改为:

sort {[DateTime]$_.RecordDate}