Saltar al contenido

Un comando de Linux para mezclar texto; Pruébelo en un archivo de texto de 78 mil millones de líneas

Shuf options

nortehoy en día, un meme sobre Shuf, un comando de Linux y Unix, está recibiendo una buena publicidad en Reddit, especialmente en un subreddit group / r / ProgrammerHumor; el crédito es para Redditor Nexuist, quien se dio cuenta por primera vez y compartió una imagen que mencionaba "78 mil millones de archivos de texto de línea".

Entonces, antes de contarte sobre Shuf, vamos a desmitificar por qué esta utilidad de línea de comandos está recibiendo tanta atención. En StackOverflow, en medio de la conversación sobre "seleccionar líneas aleatorias del archivo", uno de los chicos llamados Ash comentó que Shuf es fantástico y lo intentó en 78 mil millones de líneas de un archivo de texto.

También afirmó que Shuf tardó menos de un minuto en barajar el texto dentro del archivo. Sin embargo, no compartió más información. Sorprendentemente, hay algunos comentarios además de respaldar la respuesta con el hecho de que Shuf es muy rápido.

Archivo de texto de 78 mil millones de líneas

Nadie sabe cuál es la verdad, pero Redditors encontró humor en el comentario y comenzó a circular un montón de memes. Un usuario, Stein van Broekhoven, publicó una respuesta con su propio experimento en el archivo con 78 mil millones de nuevas líneas.

Y lo creas o no, cit√≥ que Shuf termin√≥ de barajar 78 000 000 000 de nuevas l√≠neas en un minuto. ¬ŅPuedes creerlo? Si no, inf√≥rmenos sobre el comando Shuf Linux y pruebe el desaf√≠o en su propio sistema.

¬ŅQu√© es shuf?

Shuf es una utilidad de línea de comandos de Linux y Unix que pone su texto de entrada en orden aleatorio para generar una salida que consiste en permutaciones aleatorias de la entrada. En términos simples, simplemente baraja la entrada del archivo de texto o la entrada estándar que se pasa a través de la línea de comando.

APRENDER A CODIGAR ANUNCIO CUADRADO

Shuf tiene tres modos de operaci√≥n que definen el m√©todo de aceptar entradas para producir salidas aleatorias. Primero, puede pasar la entrada utilizando un m√©todo est√°ndar que tambi√©n es un m√©todo predeterminado de lectura de entrada. En segundo lugar, puede usar la opci√≥n -e o –echo para tratar cada operando de l√≠nea de comando como una l√≠nea de entrada.

Y, por √ļltimo, use -i lo-hi o –input-range = lo-hi para definir el rango de salida.

shuf (opción) ... (archivo) shuf -e (opción) ... (arg) ... shuf -i lo-hi (opción) ...

También hay otras opciones para ejecutar Shuf en diferentes modos.

Opciones de shufOpciones de shuf

¬ŅC√≥mo utilizar el comando Shuf Linux / Unix?

Ahora comencemos a usar Shuf y aprendamos practicándolo en una terminal. Para demostrar Shuf, he creado un archivo de texto fossbytes.txt con diez líneas de entradas.

gato fossbytes.txt
Archivo de texto Shuf con entradasarchivo de texto con entradas

Contenido aleatorio de archivos

Si solo desea imprimir la salida de los archivos en orden aleatorio, puede usar Shuf directamente con un nombre de archivo para barajar el contenido de los archivos.

shuf fossbytes.txt
Obtenga el contenido del archivo de texto en orden aleatorioObtenga el contenido del archivo de texto en orden aleatorio

Mezclar con n√ļmero limitado de contenido aleatorio

Ahora, si desea generar su contenido aleatorio desde un archivo de texto en un n√ļmero limitado, puede usar la opci√≥n -n que define el no de salida que desea.

APRENDER A CODIGAR ANUNCIO CUADRADO

shuf -n 5 fossbytes.txt
Contenido aleatorio con n√ļmero limitadoContenido aleatorio con n√ļmero limitado

Pasar salida barajada a otro archivo

A veces es posible que desee transferir contenido aleatorio a otro archivo. Por lo mismo, puede usar el comando anterior con> redirección de salida a otro archivo.

shuf -n 5 fossbytes.txt> fossbytes_1.txt
Pase la salida barajada a otro archivoPase la salida barajada a otro archivo

Si desea mover todo el contenido a otro archivo, elimine la opción -n y simplemente ejecute:

shuf fossbytes.txt> fossbytes_1.txt
Pase toda la salida mezclada a otro archivoPase toda la salida mezclada a otro archivo

La entrada aleatoria pasó como argumento de línea de comandos

También puede obtener contenido aleatorio pasando la entrada como un argumento de línea de comandos. Puede usar la opción -e que trata los argumentos como una línea de entrada.

shuf -e texto_1 texto_2 texto_4 texto_3 texto_5
La entrada aleatoria pasó del argumento de la línea de comandoLa entrada aleatoria pasó del argumento de la línea de comando

Mezclar contenido aleatorio dentro del rango

Para imprimir un rango de salidas, puede usar la opción -i con valores de rango de menor a mayor:

shut -i 1-10
Mezclar rango de entradaMezclar rango de entrada

Adem√°s, tambi√©n puede especificar el n√ļmero de salidas aleatorias usando el indicador -n. Tambi√©n he usado la opci√≥n -r para repetir la salida a menos que produzca menos de diez salidas.

shuf -r -n 10 -i 0-5
Rango aleatorio de entrada con no limitado de salidaRango aleatorio de entrada con no limitado de salida

Conclusión

Espero que aprendas sobre "Fantastic Shuf" que acelerará el proceso de generar contenido aleatorio a partir de líneas de entrada. Si ha probado su archivo de texto con sus 70 mil millones de líneas de texto, comparta en la sección de comentarios a continuación.