viernes, 11 de agosto de 2017

Ordenando un array

Al igual que en las hojas de cálculo, a menudo es necesario ordenar los valores de una columna de datos. El shell no tiene una forma directa de hacerlo, pero no es complicado de realizar con un poco de código:

#!/bin/bash

# array-sort : Sort an array

a=(f e d c b a)

echo "Original array: ${a[@]}"
a_sorted=($(for i in "${a[@]}"; do echo $i; done | sort))
echo "Sorted array:   ${a_sorted[@]}"

Cuando lo ejecutamos, el script produce esto:

[me@linuxbox ~]$ array-sort
Original array: f e d c b a
Sorted array:   a b c d e f

El script funciona copiando el contenido del array original (a) en un segundo array (a_sorted) con un un pequeño truco con sustitución de comandos. Esta técnica básica puede usarse para realizar muchos tipos de operaciones en el array cambiando el diseño de la tubería.

No hay comentarios:

Publicar un comentario