2017-06-29 1 views

Répondre

2

Vous pouvez utiliser shuf pour générer des permutations aléatoires du fichier, puis utiliser split pour générer les deux fichiers:

shuf input | split -l $(($(wc -l <input) * 70/100)) 

Le préfixe par défaut pour split est-x, donc après en cours d'exécution de la commande, vous devriez avoir deux fichiers: xaa (70%), et xab (restant 30%).

Vous pouvez contrôler les fichiers de sortie pour la commande split:

-a, --suffix-length=N generate suffixes of length N (default 2) 
    --additional-suffix=SUFFIX append an additional SUFFIX to file names. 
-d, --numeric-suffixes[=FROM] use numeric suffixes instead of alphabetic. 
           FROM changes the start value (default 0). 

, vous pouvez utiliser ceci:

shuf input | split -a1 -d -l $(($(wc -l <input) * 70/100)) - output 

qui va générer output0 (70%), et output1 (30% restants).