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.