当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 PowerShell 中对数组进行排序?

作者:精品下载站 日期:2024-12-14 05:04:00 浏览:14 分类:玩电脑

如何在 PowerShell 中对数组进行排序?


您需要了解 PowerShell 排序数组吗?在本 PowerShell 教程中,我将解释如何使用各种方法和实际示例在 PowerShell 中对数组进行排序。

要在 PowerShell 中对数组进行排序,请使用 Sort-Object cmdlet。对于升序,只需将数组通过管道传输到 cmdlet 中,例如 $myArray |排序对象。要按降序排序,请附加-Descending参数:$myArray |对象排序-降序

在 PowerShell 中对数组进行排序

数组是保存项目集合的数据结构。这些项目可以是任何数据类型,在 PowerShell 中,数组甚至可以保存不同类型的项目。数组对于存储和操作数据集非常有用。

让我们探索对 PowerShell 数组进行排序的不同方法。

使用 Sort-Object 对 PowerShell 数组进行排序

PowerShell 中用于排序的主要 cmdlet 是 Sort-Object。此 cmdlet 根据对象属性值按升序或降序对对象进行排序。如果不指定属性,PowerShell 将根据对象类型的默认属性进行排序。

基本排序

以下是在 PowerShell 中使用 sort-object 对数字数组进行排序的简单示例:

$array = 3, 1, 4, 1, 5, 9, 2
$sortedArray = $array | Sort-Object
$sortedArray

这将以升序输出数字:

1
1
2
3
4
5
9

下面是如何在 PowerShell 中对字符串数组进行排序的另一个示例。

# Define a string array
$stringArray = 'orange', 'apple', 'banana'

# Sort the array in ascending order using Sort-Object
$sortedArray = $stringArray | Sort-Object

# Output the sorted array
$sortedArray

该脚本将以字母升序输出字符串“apple”、“banana”和“orange”。我使用 VS code 执行 PowerShell 脚本后,您可以在下面的屏幕截图中看到输出:

[玩转系统] 如何在 PowerShell 中对数组进行排序?

如果您想按降序排序,您可以修改 Sort-Object 行以包含 -Descending 参数:

# Sort the array in descending order
$sortedArray = $stringArray | Sort-Object -Descending

您可以在下面的屏幕截图中看到输出;我用过VS代码;您可以使用任何编辑器来执行 PowerShell 脚本。

[玩转系统] 如何在 PowerShell 中对数组进行排序?

按降序排序

要按降序对 PowerShell 数组进行排序,请使用 -Descending 开关:

$sortedArray = $array | Sort-Object -Descending
$sortedArray

在 PowerShell 中对字符串数组进行排序

您还可以在 PowerShell 中对字符串数组进行排序。默认情况下,排序不区分大小写:

$stringArray = 'Banana', 'apple', 'Cherry'
$sortedStringArray = $stringArray | Sort-Object
$sortedStringArray

这按字母顺序对字符串进行排序:

apple
Banana
Cherry

使用自定义表达式在 PowerShell 中对数组进行排序

让我们看看如何使用自定义表达式在 PowerShell 中对数组进行排序。您可以根据表达式进行排序,例如字符串的一部分或数学计算:

$array = 'a1', 'a10', 'a2', 'a3'
$sortedArray = $array | Sort-Object { [int]($_.Substring(1)) }
$sortedArray

这将根据每个字符串的数字部分对数组进行排序:

a1
a2
a3
a10

对具有多个属性的 PowerShell 数组进行排序

您还可以按多个属性对 PowerShell 数组进行排序。当您有复杂的对象,并且您想按一个属性排序,然后再按另一个属性排序时,这非常有用:

$people = @(
    @{ Name = 'John'; Age = 30 },
    @{ Name = 'Jane'; Age = 25 },
    @{ Name = 'John'; Age = 22 }
)

$sortedPeople = $people | Sort-Object -Property Name, Age
$sortedPeople

上面的 PowerShell 脚本将按姓名对人员进行排序,然后按每个姓名中的年龄对人员进行排序。

在 PowerShell 中使用哈希表对数组进行排序

让我向您展示如何在 PowerShell 中使用哈希表对数组进行排序。您可以使用哈希表为不同的属性指定不同的排序:

$sortedPeople = $people | Sort-Object -Property @{Expression="Name";Descending=$false}, @{Expression="Age";Descending=$true}
$sortedPeople

这将按姓名升序排序,然后按年龄降序排序。

结论

在PowerShell中对数组进行排序是一个非常常见的需求,我们可以使用多种方法来实现它。 Sort-Object cmdlet 是大多数排序任务的首选,具有升序或降序排序、区分大小写和唯一值排序的选项。

在本 PowerShell 教程中,我解释了如何使用 PowerShell 数组排序,特别是对 PowerShell 数组进行排序的不同方法。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯