Сортировка данных не должна быть тяжелой задачей. Если вы ищете эффективный способ сортировки данных, команда PowerShell `Sort-Object` здесь, чтобы помочь!
В этом руководстве вы узнаете, как использовать команду PowerShell `Sort-Object` для сортировки данных, будь то числа, строки или объекты.
Забудьте о постоянном вглядывании в ваши данные и эффективно сортируйте их в PowerShell!
Необходимые условия
Убедитесь, что у вас установлен компьютер с PowerShell 5.0 или более поздней версией для следования этому руководству с практическими демонстрациями. В этом руководстве используется Windows 10 с установленным PowerShell 7.
Сортировка данных с помощью команды PowerShell `Sort-Object`
В зависимости от ваших требований вы можете сортировать данные по одному или нескольким свойствам разными способами. Команда `Sort-Object` позволяет вам сортировать данные, например, по возрастанию или убыванию для упрощения анализа и работы с структурированной информацией.
Базовый синтаксис команды `Sort-Object` следующий, где:
<Объект-для-сортировки>
– Относится к сбору данных для сортировки, таким как массив, список или другие типы данных.<-Параметр>
– Необязательный параметр для указания критериев сортировки, который позволяет настраивать, как выполняется сортировка.
Чтобы увидеть, как вы можете сортировать данные по возрастанию и убыванию:
1. Откройте PowerShell и выполните следующую команду, которая не выводит результат, а определяет список случайных целых чисел в переменной $numbers
.
? Обратите внимание, что в PowerShell вы работаете не только с числами и строками, но и с объектами, поскольку PowerShell является объектно-ориентированным языком и оболочкой.
2. Затем выполните следующие команды для сортировки (Sort-Objects
) и отображения (Write-Output
) чисел, определенных в переменной $numbers
.
Без добавления параметров вывод отображает числа в возрастающем порядке.

3. Теперь выполните те же команды, но на этот раз добавьте параметр -Descending
, чтобы сортировать и отображать числа в убывающем порядке.
Подобный ниже вывод указывает, что числа были отсортированы в убывающем порядке.

Сортировка данных по уникальным значениям
Сортировка данных по возрастанию и убыванию – это одно. Но могут быть случаи, когда вам нужно отсортировать данные на основе уникальных значений. В этом контексте “уникальные” означает отличные или неповторяющиеся значения внутри набора данных.
Чтобы отсортировать данные по уникальным значениям:
Выполните следующие команды, чтобы выполнить следующее:
- Определите список целых чисел (с включенными дубликатами) в переменной
$numbers
. - Отсортируйте числа по уникальным значениям в порядке
-убыванию
и сохраните результат в переменной$sortedNumbers
.
При сортировке по уникальным значениям вы упорядочиваете данные так, чтобы каждое значение появлялось только один раз в отсортированном результате, устраняя дубликаты.
Эти команды не предоставляют вывод, но вы проверите отсортированные данные на следующем шаге.
Теперь выполните команду Write-Output
ниже, чтобы вывести содержимое переменной $sortedNumbers
и проверить результат.
Ниже отсортированы все уникальные значения в порядке убывания, и дубликаты были устранены.
Как видите, сортировка по уникальным значениям повышает эффективность анализа данных и устраняет избыточную информацию при работе с большими наборами данных.

Сортировка данных по строкам
До сих пор вы видели, как сортировать числовые значения. Но что, если вы работаете со строками? Не беспокойтесь. Команда Sort-Object
позволяет вам упорядочивать строковые данные в определенном порядке на основе критериев сортировки.
В этом контексте строка относится к одному символу или последовательности символов, таким как слова, фразы или другие текстовые данные. В PowerShell строки представлены путем заключения текста в кавычки, либо одинарные ('
), либо двойные ("
).
Выполните следующие команды, чтобы отсортировать массив строк в порядке возрастания (алфавитном) по умолчанию.
Сортировка строк в PowerShell обеспечивает гибкость в организации текстовых данных в желаемом порядке, позволяя эффективную манипуляцию и анализ данных.

Теперь выполните те же команды, но вместо этого отсортируйте их в обратном порядке -Descending
.
На этот раз вы увидите вывод в обратном порядке, как показано ниже.

Сортировка данных по свойствам
Безусловно, сортировка строк пригодится. Но обычно вам следует быть более конкретными при сортировке данных. Помимо сортировки строк, почему бы не отсортировать объекты на основе их свойств?
При работе с объектами PowerShell каждый объект обычно имеет одно или несколько свойств, которые можно использовать для сортировки. Эти свойства позволяют вам определить критерии сортировки, соответствующие вашим потребностям.
Выполните следующие команды, чтобы получить список всех выполняющихся процессов (Get-Process
) в вашей системе и отсортировать их по использованию процессора (CPU
). Параметр -Descending
отображает результат с наиболее ресурсоемкими процессами в начале списка.

Сортировка хэш-таблиц
Сортировка объектов по свойствам – это изменение игры при работе с анализом данных. Но как насчет организации данных в пары ключ-значение, как в хэш-таблицах?
Командлет Sort-Object
позволяет сортировать хэш-таблицы для улучшения представления данных и упрощения извлечения информации.
Запустите следующий код, чтобы преобразовать хэш-таблицу в массив пар ключ-значение и отсортировать хэш-таблицу по её ключам.
Поскольку ключи сортируют хэш-таблицу, вывод будет иметь следующий вид, где можно наблюдать, что вывод организует и отображает пары ключ-значение в определенном порядке.
Этот метод сортировки обеспечивает более удобное представление данных и упрощает извлечение информации из хэш-таблицы.

Заключение
На протяжении этого руководства вы исследовали, как сортировать уникальные значения, строки, числа, процессы и даже хэш-таблицы с помощью командлета Sort-Object
в PowerShell. Сортировка данных – это одна из задач, которая позволяет вам подготовить почву для более глубокого анализа данных, и с командлетом Sort-Object
в PowerShell вы идете в правильном направлении.
Вооружившись этим новым знанием, вы теперь можете обеспечить организованное и осмысленное представление ваших данных и уверенно демонстрировать их другим.
Сортировка – это только одна из многих ценных возможностей PowerShell и его командлетов. Почему бы не расширить свои навыки, изучив другие командлеты? Возможно, создать журналы программ с помощью Tee-Object
или измерить размеры объектов с помощью Measure-Object
?
Source:
https://adamtheautomator.com/powershell-sort-object/