Powershell – 13 – Sort-Object

13.1- Sort-Object

Ordena un conjunto de objetos por los valores de las propiedades. Podemos especificar una propiedad o un conjunto de propiedades con el fin de ordenar mediante el parametro «-property«.

Si especificamos varias propiedades, los objetos se ordenaran en funcion de la primera propiedad. El resto de propiedades se utilizan en el caso de que un grupo de objetos coincidan con el mismo nombre en las ateriores propiedades.

En el proceso de ordenacion se distingue entre mayusculas y minusculas a menos que se especifique el parametro «-casesensitive«.

Por defecto, este cmdlet ordena los objetos en orden ascendente, pero este comportamiento se puede modificar mediante la utilizacion del parametro «-descending«.

Si un objeto no tiene una de las propiedades especificadas, «sort-object» interpreta como nulo el valor de la propiedad correspondiente de ese objeto. Los objetos con un valor nulo se situan al final en el criterio de ordenacion.

Si no especificamos ninguna propiedad por la que realizar la ordenacion, «sort-object» llevara a cabo una ordenacion con metodos predeterminados que dependen del tipo de objeto que se esta ordenando.

Este cmdlet por si solo no nos va a server para mucho. Se utiliza casi siempre como receptor de otro u otros cmdlets y realiza la ordenacion del conjunto de objetos recibido. Esto quiere decir, simplemente, que «sort-object» normalmente estara situado despues de un caracter de tuberia (|).

Las unicas ocasiones en que esto ultimo no sera asi es cuando utilicemos el parametro «-inputobject«.

13.2- Parametros

-property <objedt[]>

Especifica la propiedad o propiedades que se van a utilizar para la ordenacion.

-inputobject <psobject>

Especifica los objetos que se van a ordenar. Podemos utilizar este parametro o utilizar la canalizacion de otro cmdlet. Personalmente me parece que es mejor no utilizar este parametro.

casesensitive <switchparemeter>

En la ordenacion se distinguira entre mayusculas y minusculas.

-unique <switchparameter>

Ordena unicamente segun los valores unicos de las propiedades

-desending <switchparameter>

Ordena los objetos de forma descendente.

-culture <string>

especifica la configuracion cultural que se va a usar durante la ordenacion.

13.3- Ejemplos

Ejemplo 1

>get-command | sort-object -descending

pwsort01

Con este comando conseguimos, primero la lista de todos los cmdlets, y posteriormente, al pasarle este resultado a «sort-object«, los odena en orden descendente gracias al parametro «-descending«.

Ejemplo 2

>get-alias | sort-object -property name

pwsort02Obtenemos la lista de todos los alias definidos en la sesion actual de Windows Powershell y posteriormente los ordenamos de forma ascendente por el parametro «name«.

Ejemplo 3

Get-chilitem -recurse | sort-object

pwsort03

En este caso, ordenamos el listado de archivos y directorios recursivo que realizamos con «get-childitem«.

Ejemplo 4

>get-childitem | sort-object -property LastWriteTime > sort.txt

Ordenamos el listado de fichero y directorios del directorio actual por la propiedad «LastWriteTime«. Este listado lo guardamos en un fichero de texto «sort.txt» que posteriormente podremos revisar.

pwsort04

pwsort05

Venga, pues esto es todo lo que tenia que comentaros sobre «sort-object«.

A pasarlo bien!!

Para ver mas articulos sobre powershell en el blog, puedes hacerlo en la pagina dedicada a Powershell.

—–
Oscar Abad
http://www.xulak.com – Consultoría informática