Comprender el comando Bash shuf

“El comando shuf es útil para cambiar aleatoriamente las líneas de entrada a la salida estándar. El comando shuf toma la entrada de los archivos o la entrada estándar, aleatoriza la entrada y da salida. Funciona como si barajas las cartas y obtienes una salida aleatoria o cómo organizas las cartas al azar según las opciones que le des.

El shuf funciona de tres maneras. Puede usarlo como rango, lista o archivo shuf. Veamos las diversas formas en que puede usar el comando shuf”.

Usando el comando Bash shuf

shuf es parte de GNU Coreutils, y puede abrir su página de ayuda para ver las diversas opciones que puede usar.

Si ejecuta el comando shuf sin argumentos, espera entradas en la línea de comando. Una vez que presiona CTRL + D , le da la salida aleatoria de su entrada. Eche un vistazo a la imagen a continuación que muestra cómo funciona en acción.

Además, puede combinar shuf canalizando la salida de otro comando. Por ejemplo, puede mezclar la lista de archivos en el directorio actual usando ls .

En el resultado anterior, observe cómo el uso de shuf aleatoriza la lista de los contenidos de nuestro directorio actual.

1. Usar shuf como archivo

Suponga que tiene un archivo que desea aleatorizar. Puede usar el comando shuf seguido del archivo que desea mezclar. En este caso, el contenido del archivo se mezclará y la salida se mostrará en la salida estándar.

Puede utilizar la siguiente sintaxis.

$ shuf nombre-archivo

En el ejemplo anterior, estamos mezclando todas las líneas del archivo. Sin embargo, usando el indicador -n , puede agregar la cantidad de líneas que desea mezclar. Aleatoricemos tres líneas y veamos qué salida obtenemos.

$ shuf -n 3 nombre-archivo

Observe cómo con cada reproducción aleatoria, obtenemos resultados aleatorios.

2. Usar shuf como rango

Puede mezclar entradas en un rango determinado. Solo necesita agregar el límite inferior y superior. Shuf luego aleatorizará la entrada en el rango dado, siempre que agregue la opción -i .

Veamos un ejemplo de números aleatorios del 11 al 19. Para eso, ejecutaremos el siguiente comando.

$ shuf-i 11-19

Si quisiera obtener solo una salida del rango aleatorio, podría usar -n como se muestra a continuación.

$ shuf -i 11-19 -n 1

Con -n, solo puede obtener una salida única. Sin embargo, agregue el indicador -r si desea permitir la repetición de resultados aleatorios. De esa manera, está haciendo posible que la salida tenga el mismo valor cuando se muestra más de una línea.

Aquí hay un ejemplo de barajar un rango y permitir mostrar tres salidas que pueden ser repetitivas.

3. Usar shuf como una lista

Cuando desee agregar argumentos como una lista en su comando shuf, use la opción -e . Los argumentos que siguen a -e serán tratados como entrada.

Este es un ejemplo de aleatorización de una lista de números alfabéticos.

Además, puede aleatorizar una lista y decidir generar solo dos líneas de salida usando -n como en la salida a continuación.

Escribir la salida en un archivo

Si desea guardar la salida aleatoria de su archivo, rango o lista, puede usar -o seguido del nombre del archivo de salida.

Vamos a aleatorizar un rango y guardarlo en un archivo nuevo, como se muestra a continuación.

Conclusión

La mezcla aleatoria de entradas en Linux es posible gracias al comando shuf. Esta guía ha presentado el comando bash shuf y ha dado ejemplos de cómo usarlo con varias opciones para obtener diferentes resultados. Espero que hayas encontrado útil el artículo.