GNU/Linux >> Tutoriales Linux >  >> Linux

¿Dibujar aleatoriamente un cierto número de líneas de un archivo de datos?

Tengo una lista de datos, como

12345
23456
67891
-20000
200
600
20
...

Suponga que el tamaño de este conjunto de datos (es decir, líneas de archivo) es N . Quiero dibujar aleatoriamente m líneas de este archivo de datos. Por lo tanto, la salida debe ser de dos archivos, uno es el archivo que incluye estos m líneas de datos, y el otro incluye N-m líneas de datos.

¿Hay alguna forma de hacerlo usando un comando de Linux?

Respuesta aceptada:

Puede que esta no sea la forma más eficiente, pero funciona:

shuf <file> > tmp
head -n $m tmp > out1
tail -n +$(( m + 1 )) tmp > out2

Con $m que contiene el número de líneas.


Linux
  1. Encuentre el número de líneas de código del repositorio de GitHub

  2. ¿Número de líneas emitidas por Ls?

  3. Awk de diferentes líneas?

  4. ¿Crear datos de lectura de texto de un archivo?

  5. ¿Contar líneas en un archivo?

Cómo quitar líneas de un archivo usando el comando Sed

5 formas de contar el número de líneas en un archivo

¿Cómo llenar un archivo con una secuencia de /dev/urandom con un número específico de líneas?

Listado de líneas de un solo archivo en DIFF

Eliminar las primeras N líneas de un archivo de registro activo

¿Cómo mostrar ciertas líneas de un archivo de texto en Linux?