@skyspirit

Как поправить поиск в BASH?

Задача: найти рандомно, но не искать уже найденные в данном цикле. Как поправить? Спасибо

WhatFile=$(find $Downloads -regex ".*\.\(mkv\|m4v\|mp4\|ts\|avi\)" -and -mmin +10  | shuf -n 2 | head -n 1 );
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Тут нет цикла. Если каждый раз брать 1 рандомный элемент всего списка, то нельзя избежать повторения. Список надо взять один раз и по нему итерироваться:

for filename in $(find ... | shuf)
do
   do_something_with "$filename"
done


Но тут могут быть побочные эффекты с пробелами и спецсимволами в именах.

(Зачем в исходном примере было |shuf -n 2|head -n 1 я не знаю, это эквивалент простому |shuf -n 1)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы