6

У меня есть большой каталог, содержащий множество файлов подобного типа. Я должен отправить несколько случайных файлов для аудита. Эти файлы не должны быть сверху или снизу (например, не в head или tail). Это подпроцесс, с которым я борюсь.

Я хочу получить любое количество файлов. Это может быть 10 или 2 или 3, но не должно быть в любом порядке.

Например, из этого списка файлов:

10 1121231243 12 3124234ewdf 31243345 xaa 112 1121231243214 3 3124234ewdffd 3124334532 xab 1121 112123124321442334 3124 31243 3124334532324 xac 112123 1121ewszf 3124234 312433 file1

Я хотел бы получить случайное подмножество, как в этом случае:

1121 112123124321442334 3124 1121ewszf

2 ответа2

7

Используйте случайную sort (-R или --random-sort), а затем head или tail:

ls | sort -R | head -10

1

Вы можете использовать sort -R для случайной сортировки списка, а затем использовать переменную $RANDOM с head для получения случайного числа результатов:

ls | sort -R | head -n $(( $RANDOM % 10 + 1 ))

Вы получите 10 результатов или меньше (никогда не ноль)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .