Ich habe eine Datenliste, wie
12345
23456
67891
-20000
200
600
20
...
Angenommen, die Größe dieses Datensatzes (d. h. Dateizeilen) ist N
. Ich möchte zufällig m
zeichnen Zeilen aus dieser Datendatei. Daher sollte die Ausgabe zwei Dateien sein, eine ist die Datei, die diese m
enthält Datenzeilen und die andere enthält N-m
Datenzeilen.
Gibt es eine Möglichkeit, dies mit einem Linux-Befehl zu tun?
Akzeptierte Antwort:
Das ist vielleicht nicht der effizienteste Weg, aber es funktioniert:
shuf <file> > tmp
head -n $m tmp > out1
tail -n +$(( m + 1 )) tmp > out2
Mit $m
enthält die Anzahl der Zeilen.