Uso y ejemplos del comando SHUF

Uso y ejemplos del comando SHUF.

El comando shuf, es una curiosa herramienta que genera salidas permutadas aleatoriamente (las mezcla) desde líneas de entrada definidas por nosotros.

Por ejemplo, si le apuntamos un archivo con una lista de números o palabras, baraja las cadenas e imprime el resultado de una forma estándar que puede ser capturado por herramientas comunes. Puedes crear tu juego de bingo casero, jajaja.

 

Uso y ejemplos del comando SHUF

La sintaxis del comando shuf es muy simple.

shuf [OPTION/S]... [FILES/CARACTERS]

Sus opciones son:
Opción cortaOpc. extendidaDescripción
-e--echoInterpreta cada argumento como fichero de entrada
-i--input-range=IN-SUCada número de entrada y salida son entradas
-n--head-count=LÍNEASNúmero de líneas a imprimir independientemente de las reales
-o--output=FICHEROEl delimitador de líneas es NUL
-z--zero-terminatedObtiene bytes aleatorios de un archivo
-r--repeatPermitir líneas repetidas
--versionVersión de la herramienta shuf
--random-source=FICHEROObtiene bytes aleatorios de un archivo
--helpAyuda del comando

 

Como ejemplo hemos creado un archivo con palabras al que hemos llamado «paises.txt». Vemos su contenido y estructura real con el comando cat.

cat paises.txt

La salida real es…
sergio@sololinux ~$ cat paises.txt
España
México
Colombia
Venezuela
Perú
Chile
Argentina
Cuba

Al ejecutar el archivo de texto con el comando shuf, el resultado es aleatorio.
shuf paises.txt

sergio@sololinux ~$ shuf paises.txt
España
Colombia
Chile
Perú
Venezuela
Cuba
México
Argentina

Curioso verdad?, pues tenemos más ejemplos.

Sobre nuestro archivo de ejemplo, vamos a indicar a la herramienta que aleatoriamente solo imprima una salida de cuatro países.

shuf -n 4 paises.txt

sergio@sololinux ~$ shuf -n 4 paises.txt
Colombia
Chile
Venezuela
México

También podemos permitir que se repitan los resultados aleatorios con «-r».
shuf -r -n 4 paises.txt

sergio@sololinux ~$ shuf -r -n 4 paises.txt
España
Chile
España
Argentina

Se permite la impresión repetitiva, incluso de más cadenas de texto que las que tiene el archivo.
shuf -r -n 12 paises.txt

sergio@sololinux ~$ shuf -r -n 12 paises.txt
Argentina
Chile
México
Cuba
Perú
Peru
Colombia
Mexico
Venezuela
España
España
Perú

 

No siempre es necesario capturar los datos de un archivo, los puedes insertar manualmente. Por ejemplo…

shuf -e Me interesa todo sobre linux

sergio@sololinux ~$ shuf -e Me interesa todo sobre linux
todo
sobre
Me
interesa
linux

Puedes hacer un sorteo entre diez (los que tu quieras) números. 😉
shuf -i 1-10

sergio@sololinux ~$ shuf -i 1-10
3
10
2
9
6
5
1
4
8
7

Incluso crear tu propio juego de bingo, jaja.
shuf -i 1-99

sergio@sololinux ~$ shuf -i 1-99
57
1
46
79
52
76
8
41
29
59
98
84
40
.....................etc...

Como punto final del articulo, verificamos la version instalada de la herramienta.
shuf --version

sergio@sololinux ~$ shuf --version
shuf (GNU coreutils) 8.25
Copyright © 2016 Free Software Foundation, Inc.
Licencia GPLv3+: GPL de GNU versión 3 o posterior
<http://gnu.org/licenses/gpl.html>.
Esto es software libre: usted es libre de cambiarlo y redistribuirlo.
No hay NINGUNA GARANTÍA, hasta donde permite la ley.

Escrito por Paul Eggert.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Agregar comentario