gpt4 book ai didi

sorting - powershell 排序多维数组

转载 作者:行者123 更新时间:2023-12-03 22:20:09 25 4
gpt4 key购买 nike

我是 Powershell 的新手,但这让我有点抓狂。我在这里查看了各种问题,但找不到答案,所以我走了。抱歉,如果已经涵盖了这一点。

我有两个包含数字列的文本文件。我想创建一个包含这 2 列的数组,并按第 1 列或第 2 列对其进行排序。

如果我们有

$a=@(1,5,10,15,25)
$b=@(100,99,98,99,10)

我们创造

c$=$a,$b

我最初的想法是尝试这样的事情:

$c | sort { [int]$_[0] }

但它不起作用。我已经尝试了很多不同的东西,所以任何建议将不胜感激。

我正在编辑这个,因为我的问题不是很清楚。最终,如果我按第 2 列的升序对 $c 进行排序,我希望得到如下内容:

25,10
10,98
5,99
15,99
1,100

知道如何实现吗?

最佳答案

我不确定你是如何声明你的维数组的,因为你希望它像这样或类似的东西声明

$c = @(@(1,100),@(5,99),@(10,98),@(15,99),@(25,10))

如果它处于那种状态,那么排序就轻而易举了

$c | Sort-Object @{Expression={$_[1]}; Ascending=$True} | %{
"$($_[0]),$($_[1])"
}

Sort-Object 适用于一维数组。当涉及多个属性时,您需要指定要对哪个属性进行排序以获得预期的输出。由于没有,我们使用计算表达式在第二个“列”的基础上进行制作。

示例输出

25,10
10,98
5,99
15,99
1,100

如果您真的想要像这样使用您的数组,我们需要一个中间步骤来将您拥有的内容转换为如何按照您期望的方式对其进行排序。

$a=@(1,5,10,15,25)
$b=@(100,99,98,99,10)
$c = @()
for($i = 0;$i -lt $a.Count; $i++){
$c += ,@($a[$i],$b[$i])
}

运行此代码后,$c 将像我的排序一样工作。

关于sorting - powershell 排序多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29513825/

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