Pide tu presupuesto ya!
1st August 2023
La clasificación de datos no debe ser una tarea abrumadora. Si está buscando una forma eficiente de ordenar datos, PowerShell Sort-Object cmdlet está aquí para ayudar!
En este tutorial, aprenderá a usar PowerShell Sort-Object cmdlet para ordenar datos, ya sean números, cadenas u objetos.
¡Elimine la constante observación de sus datos y ordénelos de manera eficiente en PowerShell!
Asegúrese de tener una máquina con PowerShell 5.0 o posterior instalado para seguir este tutorial junto con las demostraciones prácticas. Este tutorial usa Windows 10 con PowerShell 7 instalado.
Sort-Object cmdletSegún sus requisitos, puede ordenar los datos según una o más propiedades de muchas maneras. El Sort-Object cmdlet le permite clasificar los datos, por ejemplo, en orden ascendente o descendente para facilitar el análisis y el trabajo con información estructurada.
La sintaxis básica de la Sort-Object cmdlet es el siguiente donde:
<Object-to-Sort> – Se refiere a recopilar datos para ordenar, como una matriz, una lista u otros tipos de datos.<-Parameter> – Un parámetro opcional para especificar los criterios de clasificación que le permite personalizar cómo se realiza la clasificación.<Object-to-Sort>|Sort-Object <-Parameter>
Para ver cómo puede ordenar los datos en orden ascendente y descendente:
1. Abra PowerShell y ejecute el siguiente comando, que no proporciona salida pero define una lista de números enteros aleatorios en el $numbers variable.
💡 Tenga en cuenta que en PowerShell, no solo está trabajando con números y cadenas, sino también con objetos, ya que PowerShell es un lenguaje y shell orientado a objetos.
2. A continuación, ejecute los siguientes comandos para ordenar (Sort-Objects) y mostrar (Write-Output) los números definidos en el $numbers variable.
$sortedNumbers = $numbers | Sort-Object
Write-Output $sortedNumbers
Sin agregar parámetros, la salida muestra los números en orden ascendente.
3. Ahora, ejecute los mismos comandos, pero esta vez, agregue el -Descending parámetro para ordenar y mostrar los números en orden descendente.
$sortedNumbers = $numbers | Sort-Object -Descending
Write-Output $sortedNumbers
El resultado similar al siguiente indica que los números se ordenaron en orden descendente.

Ordenar datos en orden ascendente y descendente es una cosa. Pero puede haber casos en los que necesite ordenar los datos en función de valores únicos. En este contexto, “único” se refiere a valores distintos o no repetidos dentro de un conjunto de datos.
Para ordenar los datos por valores únicos:
Ejecute los siguientes comandos para realizar lo siguiente:
$numbers variable.-Unique valores en -Descending ordenar y almacenar el resultado en el $sortedNumbers variable.Al ordenar por valores únicos, organiza los datos para que cada valor aparezca solo una vez en el resultado ordenado, eliminando los duplicados.
Estos comandos no proporcionan resultados, pero verificará los datos ordenados en el siguiente paso.
$numbers = 4, 2, 3, 3, 1, 5, 2
$sortedNumbers = $numbers | Sort-Object -Unique -Descending
Ahora, ejecuta el Write-Output comando a continuación para mostrar el contenido de la $sortedNumbers variable para verificar el resultado.
Write-Output $sortedNumbers
A continuación, todos los valores únicos se ordenan en orden descendente y se eliminan los valores duplicados.
Como puede ver, la clasificación por valores únicos mejora la eficiencia del análisis de datos y elimina la información redundante cuando se trata de grandes conjuntos de datos.

Hasta ahora, ha visto cómo ordenar valores numéricos. Pero, ¿y si estás trabajando con cadenas? No te preocupes. El Sort-Object cmdlet le permite organizar datos de cadena en un orden específico según los criterios de clasificación.
En este contexto, una cadena se refiere a un solo carácter o una secuencia de caracteres, como palabras, frases u otros datos textuales. En PowerShell, las cadenas se representan encerrando el texto entre comillas, ya sea simple (') o doble (").
Ejecute los siguientes comandos para ordenar una matriz de cadenas en orden ascendente (alfabético) de forma predeterminada.
Ordenar cadenas en PowerShell brinda flexibilidad para organizar datos textuales en el orden deseado, lo que permite una manipulación y un análisis de datos eficientes.
# Define an array of strings
$strings = "a", "b", "c"
# Sort the strings in ascending order by default (no parameters)
$sortedStrings = $strings | Sort-Object
# Display the sorted strings
Write-Output $sortedStrings

Ahora, ejecuta los mismos comandos, pero ordénalos en -Descending ordenar en su lugar.
# Define an array of strings
$strings = "a", "b", "c"
# Sort the strings in descending order
$sortedStrings = $strings | Sort-Object -Descending
# Display the sorted strings
Write-Output $sortedStrings
Esta vez verá la salida en el orden inverso, como se muestra a continuación.

Sin duda, la cadena de clasificación es útil. Pero, por lo general, debe ser más específico al ordenar los datos. Además de ordenar cadenas, ¿por qué no ordenar objetos según sus propiedades?
Cuando se trabaja con objetos de PowerShell, cada objeto normalmente posee una o más propiedades que puede usar para ordenar. Estas propiedades le permiten definir sus criterios de clasificación adaptados a sus necesidades.
Ejecute los siguientes comandos para recuperar una lista de todos los procesos en ejecución (Get-Process) en su sistema y ordenarlos por CPU utilización. El -Descending El parámetro muestra el resultado con los procesos que consumen más recursos en primer lugar.
# Retrieve a collection of all running processes
$processes = Get-Process
# Sort the processes based on CPU usage in descending order
$sortedProcesses = $processes | Sort-Object -Property CPU -Descending
# Select and display the Name and CPU properties of each process
$sortedProcesses | Select-Object Name, CPU

Ordenar objetos por propiedades cambia las reglas del juego cuando se trabaja con análisis de datos. Pero, ¿qué pasa con la organización de datos en pares clave-valor como tablas hash?
El Sort-Object cmdlet le permite ordenar tablas hash para mejorar la presentación de datos y simplifica la recuperación de información.
Ejecute el siguiente código para convertir una tabla hash en una matriz de pares clave-valor y ordene la tabla hash por sus claves.
# Create a hash table with three key-value pairs
$hashTable = @{
"C" = "Charlie"
"A" = "Alpha"
"B" = "Bravo"
}
# Sort the hash table by keys and store the sorted result in $sortedHashTable
$sortedHashTable = $hashTable.GetEnumerator() | Sort-Object -Property Name
# Iterate through each entry in the sorted hash table
foreach ($entry in $sortedHashTable) {
# Output the key-value pair
Write-Output "$($entry.Name): $($entry.Value)"
}
Dado que las claves ordenan la tabla hash, la salida se parecerá a la siguiente, donde puede observar que la salida organiza y muestra pares clave-valor en un orden específico.
Este método de clasificación garantiza una mejor presentación de los datos y facilita la recuperación de información de la tabla hash.

A lo largo de este tutorial, ha explorado cómo ordenar valores únicos, cadenas, números, procesos e incluso tablas hash con el Sort-Object cmdlet. La clasificación de datos es una tarea que le permite allanar el camino hacia un análisis de datos más perspicaz, y con PowerShell Sort-Object cmdlet, estás en el camino correcto.
Armado con este nuevo conocimiento, ahora puede asegurarse de que sus datos estén organizados de manera significativa y mostrarlos con confianza a otros.
La clasificación es solo una de las muchas capacidades valiosas de PowerShell y sus cmdlets. ¿Por qué no ampliar sus habilidades aprendiendo sobre otros cmdlets? Tal vez crear registros de programas con Tee-Object o medir tamaños de objetos con Measure-Object?
Leave a comment