5 un
5 b
5 c
4 d
6 t
1 f
7 h
5 i
6 j
5 k
sortie 1:
5 b
6 t
5 k
sortie 2 contient les valeurs restantes
5 un
5 b
5 c
4 d
6 t
1 f
7 h
5 i
6 j
5 k
sortie 1:
5 b
6 t
5 k
sortie 2 contient les valeurs restantes
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).