Ordenar con el comando sort

Con el comando sort podemos ordenar las líneas de un fichero o podemos usarlo para filtrar la salida de otro comando y devolver esa salida ordenada.

Vamos a tomar este fichero como ejemplo para ver los distintos modificadores de sort:

   uno
# dos
tres
cuatro
cinco
6

Donde tenemos una línea que comienza por espacios en blanco, una línea que comienza por #, otra con un número y el resto que comienzan por letras y dos de esas líneas comienzan por la misma letra.

Si escribimos el comando y le pasamos como parámetro el fichero:

sort fichero

El resultado que devuelve es:

   uno
# dos
6
cinco
cuatro
tres

Ordena teniendo en cuenta espacios en blanco y otros caracteres, que los posiciona antes que los números y éstos, antes que las letras.

Para ignorar los espacios en blanco, sort cuenta con el modificador -b:

sort -b fichero

Que devuelve:

# dos
6
cinco
cuatro
tres
   uno

Ahora, «uno», que alfabéticamente es el último elemento de la lista, está al final, independientemente de los espacios en blanco.

Para que los números los ordene detrás del resto de caracteres, tenemos el modificador -n:

sort -n fichero

Que devuelve:

   uno
# dos
cinco
cuatro
tres
6

Si buscamos lo contrario, es decir, que los números ocupen las primeras posiciones, está el operador -V:

sort -b fichero

Que devuelve:

6
cinco
cuatro
tres
   uno
# dos

Para invertir el orden, sort cuenta con el modificador -r:

sort -r fichero

Que devuelve:

tres
cuatro
cinco
6
# dos
   uno

Obviamente,  todos estos modificadores se pueden combinar entre sí.

Aunque hay más modificadores, estos son los más habituales. Y para concluir, comentar que sort tiene un operador que ordena aleatoriamente, que es -R.

sort -R fichero

Devolvería el fichero ordenado aleatoriamente. Igual que shuf, pero obliga a escribir tres caracteres más. Ideal para los que rechazan la eficiencia.

Un comentario en «Ordenar con el comando sort»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.