1 votes

Entier aléatoire en ligne ou fichier

J'ai un dossier avec quelques fichiers nommés 1.mp3, 2.mp3, 3.mp3, ...

J'ai également une commande qui accepte un fichier mp3 en entrée :

blablabla -i mp3/1.mp3

Je voudrais passer à la commande au hasard fichier mp3.

blablabla -i mp3/<random int in range 1-n>.mp3

Ou

blablabla -i mp3/<get random file from mp3 folder>

Je cherche la méthode la plus simple pour le faire, peu importe laquelle. Qui peut m'aider ?

1voto

αғsнιη Points 33236

Utilice blablabla -i mp3/$(( ( RANDOM % N ) + 1 )).mp3

Remplacer N avec le numéro Max que vous voulez générer, ou 1 Numéro minimum.

Ou vous pouvez utiliser $(shuf -i MIN-MAX -n 1) à la place.

de man shuf :

-i, --input-range=LO-HI
    treat each number LO through HI as an input line
-n, --head-count=COUNT 
    output at most COUNT lines

En fait, -n 1 en shuf signifie ici que l'on ne génère qu'un seul Num aléatoire, vous pouvez tester avec -n 2 qui génère deux nombres aléatoires.

Vous pouvez aussi vouloir avoir ceci avec printf si le nom de votre fichier comporte des 0 en tête.

printf "%03d.mp3\n" $(( (RANDOM % 100) + 1 ))
018.mp3

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X