Индивидуально выполнить все файлы в каталоге - PullRequest
3 голосов
/ 14 января 2010

Я пытался написать сценарий оболочки для перемещения по дереву каталогов и воспроизведения каждого найденного mp3-файла. afplay - моя любимая утилита, учитывая, что я на Mac. Тем не менее, afplay принимает только один аргумент за раз, поэтому вы должны вызывать его снова и снова, если хотите, чтобы он продолжал играть. Кажется, что самое простое решение будет следующим:

$(`find . -name *.mp3 | awk '{ print "afplay \047" $0 "\047"; }' | tr '\n' ';' | sed 's/;/; /g'`)

... но что-то продолжает цепляться за кавычки. Для быстрого ознакомления, \ 047 является восьмеричным для '(символ одинарной кавычки), который должен заключать аргументы в один, но по некоторым причинам это не так. Понятия не имею, что здесь происходит не так.

Ответы [ 2 ]

5 голосов
/ 14 января 2010

Почему не просто find . -name '*.mp3' -exec afplay '{}' \;?

0 голосов
/ 29 июня 2012

Если все ваши песни выглядят так:

1. song_name.mp3
2. song_name.mp3
3. song_name.mp3  
  ...
20. song_name.mp3

чтобы сыграть все 20 из них, вы можете просто зациклить

for ((i=1; i<=20; i++)); do afplay $i* ; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...