Re: Не в тему: помогите с конвейером командной строки.
21.05.2015 07:28, Ста Деюс пишет:
> Доброго времени суток.
>
>
> Извините, что не по теме.
>
> Я пытаюсь сделать проигрывание свитков (files) с помощью
> "проигрывателя-м" (mplayer) :о) , используя конвейер - идея: проиграть
> все свитки каталогу в отсортированном порядке:
>
> ls |sort |mplayer
>
> ls |sort |mplayer -
>
> mplayer $(ls |sort)
>
> - ничего не работает: последний запускает проигрыватель с
> отсортированным списком, но в названиях свитков есть пробелы, к.
> никак не отрабатываются конвейером (и я у меня идеи даже нет как это
> сделать), да и ожидает, он, похоже, ввод с клавиатуры. :о(
>
> В общем, вопрос: как сделать конвейер, хотя бы для свитков с названиями
> без пробелов?
>
> Спасибо за помощь!
>
>
> С уважением,
> Ста.
>
>
> Справка к моим сокращениям
> --
> к. - кои, коий и т.п.
> м/о - можно
>
>
Лично для себя использовал для этих целей (когда нужно передать много
файлов с пробелами одной команде) find с опцией -print0, который можно
было потом скармливать xargs -0. если нужен sort - то можно применить
sort -z. то есть что-то вроде
find . -maxdepth 1 -print0 | sort -z | xargs -0 mplayer
ну или совсем уж без трубопровода:
find . -exec mplayer {} +
однако ж лично мне кажется, что передавать в качестве аргумента мплеера
неограниченное количество имён - дело не благодарное, потому я бы
предпочёл использовать
find . -print0 | sort -z |xargs -n 1 -0 mplayer.
Кроме того ходит слух (
http://lists.gnu.org/archive/html/coreutils/2014-02/msg00005.html ) ,
что с разработчики ls считают его ориентированной для пользователя, а
потому во всех скриптах следует использовать именно find.
Reply to: