Небольшая хитрость: выбираем случайный файл или строку в файле. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Небольшая хитрость: выбираем случайный файл или строку в файле

1
Конечно, все мы бесконечно ценим свободу. В частности, свободу выбора. Но иной раз она тяготит. Заглянул, например, в папку с видео, а там куча фильмов непросмотренных. На чем остановиться, что выбрать? Вот же досада! Так и хочется достать монетку и простой случайностью «орел-решка» решить проблему, но, увы и ах, не найти монету с 20-30-40-?? сторонами. К счастью, в Linux есть такая «монетка». Кому интересно — под кат.

Ничего устанавливать не нужно. Всё уже есть, в любом дистрибутиве Linux. Это команда «shuf» — генератор случайных значений. Полностью ознакомиться с ее функционалом можно набрав «man shuf», я же расскажу о двух конкретных примерах.
Итак, возвращаемся в нашу папку с фильмами («cd /home/user/video», например) и вводим следующее:
ls | shuf -n1
Первая часть всем должна быть уже знакома, команда ls выдает нам содержимое папки. Далее, мы с помощью вертикальной черты направляем вывод команды ls команде shuf, которая случайным образом выбирает одну строку из этого вывода. То есть, один файл из всего содержимого папки (вернее, его название). Случайный. Хотите не один, а пару или больше? Ок, вместо "-n1" напишите "-n2" или "-n3" или другое значение.
Второй пример. У нас в наличии список чего-нибудь. Находится он в обычном текстовом файле. Набираем в консоли:
cat spisok.txt | shuf -n1
Все то же самое, только вместо папки у нас текстовый файл. Команда cat выводит в терминал содержимое файла, а команда shuf выбирает из этого содержимого случайную строку.
Вот и все. Очевидно, что можно придумать и другие варианты использования.
Лайков: +2
войдите, чтобы ставить лайки
1
  • Опубликовано: 01.04.2012
  • bibilkoff

Комментарии

yuriy
Активный пользователь
Активный
01.04.2012
22:59
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Интересная штука. Когда-то нужно было такое и я не знал, как сделать, а тут оказывается все так просто :)

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила