Сортировка объектов в Windows PowerShell

PowerShellПоговорив о фильтрации объектов в прошлой статье, стоит развить тему и коснуться сортировки.

Собственно, сортировка важна для удобства работы с объектами не меньше фильтрации. Операция сортировки осуществляется командлетом Sort-Object. Для работы командлета необходимо указать свойство объектов, по которому они будут сортироваться. Результатом станет вывод объектов в определенной последовательности.

Продолжим наш пример со списком процессов.

Итак, напомню, что список процессов в PowerShell вызывается командлетом Get-Process. В прошлый раз мы фильтровали процессы по загрузке CPU. Теперь отсортируем их.

Get-Process | Sort-Object -Property cpu
Сортировка объектов в Windows PowerShell
Пример сортировки объектов в Windows PowerShell

Параметр -Property в командлете Sort-Object используется по умолчанию. Поэтому его можно не писать. Как видим, по умолчанию объекты сортируются от меньшего к большему. Если нужно отсортировать объекты в обратном направлении, то применяется параметр -Descending.

Сортировка объектов в Windows PowerShell

На самом деле, с сортировкой всё. Как видите, здесь нет абсолютно ничего сложного.

Теперь, зная про фильтрацию и сортировку, усложним наш конвейер. Сначала отфильтруем объекты, а потом отсортируем их. Пусть нас интересуют только процессы, на выполнение которых ушло больше 20, но меньше 50 секунд. Отсортируем их в обратном порядке.

Get-Process | Where-Object {($_.CPU -lt 50) -and ($_.CPU -gt 20)} | Sort-Object -Descending cpu

Сортировка объектов в Windows PowerShell

В данном примере конвейер состоит уже из трех командлетов, которые поочередно передают объекты друг другу. Таким образом, становится понятно, что скриптовый язык PowerShell позволяет создавать довольно сложные конструкции при написании сценариев.

Добавить комментарий

Ваш адрес email не будет опубликован.