GNU/Linux >> Linux Esercitazione >  >> Linux

Disegna a caso un certo numero di righe da un file di dati?

Ho un elenco di dati, come

12345
23456
67891
-20000
200
600
20
...

Si supponga che la dimensione di questo set di dati (cioè righe di file) sia N . Voglio estrarre a caso m righe da questo file di dati. Pertanto, l'output dovrebbe essere due file, uno è il file che include questi m righe di dati e l'altro include N-m righe di dati.

C'è un modo per farlo usando un comando Linux?

Risposta accettata:

Questo potrebbe non essere il modo più efficiente, ma funziona:

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

Con $m contenente il numero di righe.


Linux
  1. Dividi il file per numero di righe inclusa l'intestazione in ciascuna?

  2. Rimuovere in modo efficiente le prime due righe da un file di testo?

  3. Contare le righe in un file?

  4. Rimuove le prime N righe da un file di registro attivo

  5. Linux:grep da determinate righe alla fine del file

Come rimuovere le righe da un file usando il comando Sed

5 modi per contare il numero di righe in un file

Rimuovi le righe pari o dispari da un file di testo

Elenca le righe di un solo file in DIFF

Rimuovi una determinata riga dal file della cronologia di Bash

estrarre le linee dal basso fino alla corrispondenza regex