gpt4 book ai didi

powershell - 使用 Powershell 对 CSV 文件进行排序

转载 作者:行者123 更新时间:2023-12-03 14:39:07 27 4
gpt4 key购买 nike

我正在尝试对大型 CSV 文件进行排序。问题在于在名为 Combined 的 coloum 上使用 sort-oject。它不像我期望的那样排序!为了测试,我删除了所有未排序的数据,并减少了行数。

原始 CSV:

Combined
1A THE BIG
7
3A SPRING
19
LUZREN
21
23
25
29
1 HONEY
5
3 THE GOOD
11
ARVALA
BRASAID
13
MEADOWCLAW

电源 shell :
Import-Csv orginal.csv -delimiter ',' | Sort-Object -Unique Combined 

Combined
--------
1 HONEY
11
13
19
1A THE BIG
21
23
25
29
3 THE GOOD
3A SPRING
5
7
ARVALA
BRASAID
LUZREN
MEADOWCLAW

我的预期是这样的:
Combined
1A THE BIG
5
7
11
13
19
21
23
25
29
1 HONEY
3 THE GOOD
3A SPRING
ARVALA
BRASAID
LUZREN
MEADOWCLAW

在一个完美的世界里,我想要这样:
Combined
1A THE BIG
1 HONEY
3 THE GOOD
3A SPRING
5
7
11
13
19
21
23
25
29
ARVALA
BRASAID
LUZREN
MEADOWCLAW

请有人向我解释为什么会发生这种情况我已经用我的头撞到我的显示器一个星期了。另外,我怎么能得到我想要的输出?

先谢谢了!

最佳答案

不确定我理解排序逻辑,但试试这个:

$StartsWithNumber = { if ($_.Combined -match '^\d*\D' ) { $_.Combined } }
$IsNumber = { if ($_.Combined -match '^\d*$') { [int]$_.Combined } }
$OnlyLetters = { if ($_.Combined -imatch '^[a-z ]*$') { $_.Combined } }

Import-Csv original.csv |
Sort-Object $OnlyLetters, $IsNumber, $StartsWithNumber -Unique

Combined
--------
1 HONEY
1A THE BIG
3 THE GOOD
3A SPRING
5
7
11
13
19
21
23
25
29
ARVALA
BRASAID
LUZREN
MEADOWCLAW

关于powershell - 使用 Powershell 对 CSV 文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com