GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo muestrear aleatoriamente un subconjunto de un archivo?

¿Hay algún comando de Linux que se pueda usar para muestrear un subconjunto de un archivo? Por ejemplo, un archivo contiene un millón de líneas y queremos muestrear aleatoriamente solo mil líneas de ese archivo.

Para aleatorio quiero decir que cada línea tiene la misma probabilidad de ser elegida y ninguna de las líneas elegidas es repetitiva.

head y tail puede elegir un subconjunto del archivo pero no al azar. Sé que siempre puedo escribir un script de python para hacerlo, pero me pregunto si hay un comando para este uso.

Respuesta aceptada:

El shuf El comando (parte de coreutils) puede hacer esto:

shuf -n 1000 file

Y al menos por ahora, las versiones no antiguas (agregadas en un compromiso de 2013), usarán el muestreo del depósito cuando sea apropiado, lo que significa que no debería quedarse sin memoria y está usando un algoritmo rápido.


Linux
  1. Cómo guardar la salida del comando en un archivo en Linux

  2. Cómo usar el comando Tar en Linux

  3. ¿Cómo forzar la eliminación de un archivo?

  4. ¿Cómo agregar la salida a un archivo?

  5. Cómo generar una suma de comprobación parcial de un archivo

Cómo usar el comando Truncar en Linux

Cómo usar un comando de archivo en Linux

Cómo abrir un archivo en Linux

Cómo mezclar líneas en un archivo en Linux

Cómo usar el comando lsof en Linux

Cómo usar el comando shred de Linux