Просмотр полной версии : random sort и не только
copyhold
10.06.2007, 06:06
как сделать типа такого:
ls someMusicDirectory | sort RANDOM | mplayer -playlist -
т.е. взять все файлы из какой то директории и случайно их отсортировать?
Более общий случай-файлы из нескольких директорий (вместе с полными путями (что само по себе вопрос)) и случайно их сортировать.
copyhold,
Мона в перле...
Telepoozeeck
10.06.2007, 09:48
mplayer -shuffle
Не?
copyhold
10.06.2007, 09:49
ха! - в перле....
в перле - оно понятно что можно. А без перла?
copyhold
10.06.2007, 09:52
mplayer -shuffle
Гениально!
Telepoozeeck
10.06.2007, 09:55
вообще сам по себе sort random это сильно сказано:) сорт это сортировка по какому то критерию. а random - случайно. некоторое противоречие. :)
не. ну можно конечно отсортировать по номеру айноуда, а потом сделать оук принт на имя файла, но это уже не рандом :p:
Telepoozeeck
10.06.2007, 09:56
короче я не знаю чё ты там хочешь от несчастного мплеера. но не думаю что он тупее винампа :D
http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html
copyhold
10.06.2007, 10:04
короче я не знаю чё ты там хочешь
не-е-е-е! я серьёзно. -shuffle работает на ура
Я для этих целей такой скрипт написал (называется shuffle, живет в ~/bin)
#!/usr/bin/perl -w
if ($ARGV[0] and $ARGV[0] eq '--help'){
die "Reads lines from the files supplied as parameters or from standart input and outputs them (to stdout) in randomized
order.\n";
}
push(@lines,$_) while(<>);
for ($i = 0; $i < @lines; $i++) {
$other = int(rand(@lines));
($lines[$i],$lines[$other])=($lines[$other],$lines[$i]);
}
print for (@lines);
Пример:
[pavel@pavel-lnx ~]
$ seq 1 10
1
2
3
4
5
6
7
8
9
10
[pavel@pavel-lnx ~]
$ seq 1 10 | shuffle
1
5
3
6
7
4
10
9
8
2
Все сообщения отражают мнения их авторов, и администрация никакой ответственности за них не несёт.
Powered by: vBulletin, Copyright © 2000 - 2007, Jelsoft Enterprises Limited.
© 2001-2007 Израильский Форум