GNU/Linux >> Tutoriels Linux >  >> Linux

Tirer au hasard un certain nombre de lignes à partir d'un fichier de données ?

J'ai une liste de données, comme

12345
23456
67891
-20000
200
600
20
...

Supposons que la taille de cet ensemble de données (c'est-à-dire les lignes de fichier) est N . Je veux tirer au hasard m lignes de ce fichier de données. Par conséquent, la sortie doit être de deux fichiers, l'un est le fichier contenant ces m lignes de données, et l'autre inclut N-m lignes de données.

Existe-t-il un moyen de le faire en utilisant une commande Linux ?

Réponse acceptée :

Ce n'est peut-être pas le moyen le plus efficace, mais cela fonctionne :

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

Avec $m contenant le nombre de lignes.


Linux
  1. Trouver le nombre de lignes de code à partir du référentiel GitHub

  2. Diviser le fichier par nombre de lignes, y compris l'en-tête dans chacune ?

  3. Supprimer efficacement les premières lignes d'un fichier texte ?

  4. Créer des données de lecture de texte à partir d'un fichier ?

  5. Comment obtenir uniquement le nombre de lignes d'un fichier

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

5 façons de compter le nombre de lignes dans un fichier

Liste des lignes d'un seul fichier dans DIFF

Supprimer une certaine ligne du fichier historique de Bash

Linux - grep de certaines lignes à la fin du fichier

Tirer au hasard un certain nombre de lignes d'un fichier de données