El comando Shuf se utiliza para generar permutaciones aleatorias en sistemas operativos Linux y similares a Unix. Usando el comando shuf, podemos mezclar aleatoriamente las líneas de un archivo de entrada dado. El comando Shuf es parte de GNU Coreutils, por lo que no tiene que preocuparse por la instalación. En este breve tutorial, déjame mostrarte algunos ejemplos del comando shuf.
El tutorial del comando Shuf con ejemplos
Tengo un archivo llamado ostechnix.txt con los siguientes contenidos.
$ cat ostechnix.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
Ahora mostremos las líneas anteriores en un orden aleatorio. Para hacerlo, ejecute:
$ shuf ostechnix.txt line2 line8 line5 line10 line7 line1 line4 line6 line9 line3
¿Ver? El comando anterior aleatorizó el orden de las líneas en el archivo llamado "ostechnix.txt" y generó el resultado.
Es posible que desee escribir la salida en otro archivo. Por ejemplo, quiero guardar el resultado en un archivo llamado output.txt . Para hacerlo, primero cree el archivo output.txt:
$ touch output.txt
Luego, escribe la salida en ese archivo usando -o marca como a continuación.
$ shuf ostechnix.txt -o output.txt
El comando anterior mezclará aleatoriamente el contenido del archivo ostechnix.txt y escribirá la salida en el archivo output.txt. Puede ver el contenido del archivo output.txt usando el comando:
$ cat output.txt line2 line8 line9 line10 line1 line3 line7 line6 line4 line5
Solo quiero mostrar cualquiera de las líneas aleatorias del archivo. ¿Cómo puedo hacerlo? ¡Simple!
$ shuf -n 1 ostechnix.txt line6
Del mismo modo, podemos elegir las primeras "n" entradas aleatorias. El siguiente comando mostrará solo las primeras cinco entradas aleatorias.
$ shuf -n 5 ostechnix.txt line10 line4 line5 line9 line3
En lugar de leer las líneas de un archivo, podemos pasar directamente las entradas usando -e marca como a continuación.
$ shuf -e line1 line2 line3 line4 line5 line1 line3 line5 line4 line2
También puedes pasar barajar los números:
$ shuf -e 1 2 3 4 5 3 5 1 4 2
Para elegir rápidamente cualquiera del rango dado, use este comando en su lugar.
$ shuf -n 1 -e 1 2 3 4 5
O elige tres números aleatorios como los siguientes.
$ shuf -n 3 -e 1 2 3 4 5 3 5 1
También podemos generar números aleatorios dentro de un rango particular. Por ejemplo, para mostrar números aleatorios entre 1 y 10, simplemente use:
$ shuf -i 1-10 1 9 8 2 4 7 6 3 10 5
Para obtener más detalles, consulte las páginas man.
$ man shuf