GNU/Linux >> Znalost Linux >  >> Linux

Náhodně nakreslit určitý počet řádků z datového souboru?

Mám seznam dat, jako

12345
23456
67891
-20000
200
600
20
...

Předpokládejme, že velikost této datové sady (tj. řádků souboru) je N . Chci náhodně nakreslit m řádků z tohoto datového souboru. Výstupem by tedy měly být dva soubory, jeden je soubor obsahující tyto m řádky dat a druhý obsahuje N-m řádky dat.

Existuje způsob, jak to provést pomocí příkazu Linux?

Přijatá odpověď:

Možná to není nejefektivnější způsob, ale funguje to:

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

S $m obsahující počet řádků.


Linux
  1. Najděte počet řádků kódu z úložiště GitHub

  2. Jak naplnit soubor streamem z /dev/urandom se zadaným počtem řádků?

  3. Awk z různých řádků?

  1. Vytvořit data pro čtení textu ze souboru?

  2. Počítat řádky v souboru?

  3. Jak získat pouze počet řádků souboru

  1. Odstraňte liché nebo sudé řádky z textového souboru

  2. Výpis řádků pouze z jednoho souboru v DIFF

  3. Odstraňte prvních N řádků z aktivního souboru protokolu