Встроенное случайное целое или файл

У меня есть папка с несколькими файлами с именем 1.mp3, 2.mp3, 3.mp3, ...

Кроме того, у меня есть команда, которая принимает mp3-файл как вход:

blablabla -i mp3/1.mp3

Я бы хотел перейти к команде случайного mp3-файла.

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

Или

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

Я ищу простейший способ сделать это, неважно, какой из них. Кто может помочь?

1
задан 22 September 2017 в 10:33

3 ответа

Используйте blablabla -i mp3/$(( ( RANDOM % N ) + 1 )).mp3

Замените N с помощью максимального числа, которое вы хотите сгенерировать, или 1 Min number.

Или вы можете использовать $(shuf -i MIN-MAX -n 1) вместо этого. [ ! d2]

из 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

На самом деле -n 1 в shuf здесь означает только генерировать один случайный номер Num, вы можете проверить с помощью -n 2, который генерирует две случайные числа .

Вы также можете захотеть иметь это с printf, если ваше имя файла имеет 0-й.

printf "%03d.mp3\n" $(( (RANDOM % 100) + 1 ))
018.mp3
1
ответ дан 22 May 2018 в 18:14

Используйте blablabla -i mp3/$(( ( RANDOM % N ) + 1 )).mp3

Замените N с помощью максимального числа, которое вы хотите сгенерировать, или 1 Min number.

Или вы можете использовать $(shuf -i MIN-MAX -n 1) вместо этого. [ ! d2]

из 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

На самом деле -n 1 в shuf здесь означает только генерировать один случайный номер Num, вы можете проверить с помощью -n 2, который генерирует две случайные числа .

Вы также можете захотеть иметь это с printf, если ваше имя файла имеет 0-й.

printf "%03d.mp3\n" $(( (RANDOM % 100) + 1 )) 018.mp3
1
ответ дан 18 July 2018 в 06:25

Используйте blablabla -i mp3/$(( ( RANDOM % N ) + 1 )).mp3

Замените N с помощью максимального числа, которое вы хотите сгенерировать, или 1 Min number.

Или вы можете использовать $(shuf -i MIN-MAX -n 1) вместо этого. [ ! d2]

из 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

На самом деле -n 1 в shuf здесь означает только генерировать один случайный номер Num, вы можете проверить с помощью -n 2, который генерирует две случайные числа .

Вы также можете захотеть иметь это с printf, если ваше имя файла имеет 0-й.

printf "%03d.mp3\n" $(( (RANDOM % 100) + 1 )) 018.mp3
1
ответ дан 24 July 2018 в 18:36

Другие вопросы по тегам:

Похожие вопросы: