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 corta | Opc. extendida | Descripción |
---|---|---|
-e | --echo | Interpreta cada argumento como fichero de entrada |
-i | --input-range=IN-SU | Cada número de entrada y salida son entradas |
-n | --head-count=LÍNEAS | Número de líneas a imprimir independientemente de las reales |
-o | --output=FICHERO | El delimitador de líneas es NUL |
-z | --zero-terminated | Obtiene bytes aleatorios de un archivo |
-r | --repeat | Permitir líneas repetidas |
--version | Versión de la herramienta shuf | |
--random-source=FICHERO | Obtiene bytes aleatorios de un archivo | |
--help | Ayuda 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.