PowerShell - 排序、顶部
PowerShell - sort, top
我可以寻求帮助吗,
我有日期 - “公司名称”和“日期”,在 $value 中,例如
|"Comp Name"| "Date" |
|:----------|----------:|
|computer1 | 2021-12-02|
|Computer2 | 2021-10-02|
|computer3 | 2021-08-02|
|computer1 | 2021-11-02|
|computer2 | 2021-12-02|
|computer3 | 2021-12-02|
|computer1 | 2021-10-02|
|computer4 | 2021-09-23|
|computer2 | 2021-09-02|
|computer3 | 2021-12-02|
|computer4 | 2021-12-07|
现在我想按日期排序并给出前1个
这意味着它期待结果。
|"Comp Name"| "Date" |
|:----------|----------:|
|computer1 |2021-12-02 |
|computer2 |2021-12-02 |
|computer3 |2021-12-02 |
|computer4 |2021-12-07 |
我用过:
$list | Sort-Object -Property Date -Descending | Select-Object -First 1
但是我只知道这个,computer1 2021-12-02,如何正确输入
听起来您想按公司名称分组,然后 select 每个组的最大日期?
$list | Group-Object -Property 'Comp Name' | ForEach-Object { $_.Group | Sort-Object Date -Descending | Select-Object -First 1 }
*旧(基于原始要求):
一种方法是获取最大值,然后再次遍历列表,使用 Where-Object cmdlet 进行过滤:
$max = $list | Sort-Object -Property Date -Descending | Select-Object -First 1
$list | Where-Object { $_.Date -eq $max.Date } | Sort-Object -Property 'Comp Name' | Get-Unique -AsString
我可以寻求帮助吗,
我有日期 - “公司名称”和“日期”,在 $value 中,例如
|"Comp Name"| "Date" |
|:----------|----------:|
|computer1 | 2021-12-02|
|Computer2 | 2021-10-02|
|computer3 | 2021-08-02|
|computer1 | 2021-11-02|
|computer2 | 2021-12-02|
|computer3 | 2021-12-02|
|computer1 | 2021-10-02|
|computer4 | 2021-09-23|
|computer2 | 2021-09-02|
|computer3 | 2021-12-02|
|computer4 | 2021-12-07|
现在我想按日期排序并给出前1个 这意味着它期待结果。
|"Comp Name"| "Date" |
|:----------|----------:|
|computer1 |2021-12-02 |
|computer2 |2021-12-02 |
|computer3 |2021-12-02 |
|computer4 |2021-12-07 |
我用过:
$list | Sort-Object -Property Date -Descending | Select-Object -First 1
但是我只知道这个,computer1 2021-12-02,如何正确输入
听起来您想按公司名称分组,然后 select 每个组的最大日期?
$list | Group-Object -Property 'Comp Name' | ForEach-Object { $_.Group | Sort-Object Date -Descending | Select-Object -First 1 }
*旧(基于原始要求): 一种方法是获取最大值,然后再次遍历列表,使用 Where-Object cmdlet 进行过滤:
$max = $list | Sort-Object -Property Date -Descending | Select-Object -First 1
$list | Where-Object { $_.Date -eq $max.Date } | Sort-Object -Property 'Comp Name' | Get-Unique -AsString