La commande Shuf est utilisée pour générer des permutations aléatoires dans les systèmes d'exploitation de type Linux et Unix. En utilisant la commande shuf, nous pouvons mélanger les lignes d'un fichier d'entrée donné de manière aléatoire. La commande shuf fait partie de GNU Coreutils, vous n'avez donc pas à vous soucier de l'installation. Dans ce bref tutoriel, laissez-moi vous montrer quelques exemples de la commande shuf.
Le didacticiel de la commande Shuf avec des exemples
J'ai un fichier nommé ostechnix.txt avec le contenu suivant.
$ cat ostechnix.txt line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
Maintenant, affichons les lignes ci-dessus dans un ordre aléatoire. Pour ce faire, exécutez :
$ shuf ostechnix.txt line2 line8 line5 line10 line7 line1 line4 line6 line9 line3
Voir? La commande ci-dessus a aléatoire l'ordre des lignes dans le fichier nommé "ostechnix.txt" et affiche le résultat.
Vous voudrez peut-être écrire la sortie dans un autre fichier. Par exemple, je veux enregistrer la sortie dans un fichier nommé output.txt . Pour ce faire, créez d'abord le fichier output.txt :
$ touch output.txt
Ensuite, écrivez la sortie dans ce fichier en utilisant -o drapeau comme ci-dessous.
$ shuf ostechnix.txt -o output.txt
La commande ci-dessus mélangera le contenu du fichier ostechnix.txt de manière aléatoire et écrira la sortie dans le fichier output.txt. Vous pouvez afficher le contenu du fichier output.txt à l'aide de la commande :
$ cat output.txt line2 line8 line9 line10 line1 line3 line7 line6 line4 line5
Je veux juste afficher l'une des lignes aléatoires du fichier. Comment puis-je le faire? Simple !
$ shuf -n 1 ostechnix.txt line6
De même, nous pouvons choisir les premières "n" entrées aléatoires. La commande suivante affichera uniquement les cinq premières entrées aléatoires.
$ shuf -n 5 ostechnix.txt line10 line4 line5 line9 line3
Au lieu de lire les lignes d'un fichier, nous pouvons directement passer les entrées en utilisant -e drapeau comme ci-dessous.
$ shuf -e line1 line2 line3 line4 line5 line1 line3 line5 line4 line2
Vous pouvez également mélanger les numéros :
$ shuf -e 1 2 3 4 5 3 5 1 4 2
Pour en choisir rapidement un dans la plage donnée, utilisez plutôt cette commande.
$ shuf -n 1 -e 1 2 3 4 5
Ou choisissez trois nombres aléatoires comme ci-dessous.
$ shuf -n 3 -e 1 2 3 4 5 3 5 1
Nous pouvons également générer des nombres aléatoires dans une plage particulière. Par exemple, pour afficher des nombres aléatoires entre 1 et 10, utilisez simplement :
$ shuf -i 1-10 1 9 8 2 4 7 6 3 10 5
Pour plus de détails, consultez les pages de manuel.
$ man shuf