Доброго времени суток, есть задача: поиск всех mp3 файлов в указанной папке, а потом передача их на обработку программе mediainfo для дальнейшего выдергивания тегов.вот скрипт:
#!/bin/bash
IFS='\'for song in `find /stripe/temp/music/ -name "*.mp3"`
do
artist=`mediainfo "$song" | grep Performer`echo $artist
done
вывод скрипта пустой:
bsd# sh /root/test.sh
bsd#по отдельности команды отрабатывают:
find /stripe/temp/music/ -name "*.mp3"
/stripe/temp/music/2012 - The Acausal Fire/Bane - 03 In endless silence.mp3mediainfo "/stripe/temp/music/2012 - The Acausal Fire/Bane - 03 In endless silence.mp3" | grep Performer
Performer : BaneПодскажите пожалуйста, в чем может быть проблема ? Подозреваю, что возможно где-то ошибся с экранированием.
> Подозреваю, что возможно где-то ошибся с экранированием.Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот вопрос/! :)
find /stripe/temp/music/ -name "*.mp3" -exec mediainfo {} \;find . -print0 | while read -d $'\0' i; do mediainfo "$(echo $i | grep .mp3)"; done;
>> Подозреваю, что возможно где-то ошибся с экранированием.
> Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот
> вопрос/! :)
>
> find /stripe/temp/music/ -name "*.mp3" -exec mediainfo {} \;
> find . -print0 | while read -d $'\0' i; do mediainfo "$(echo
> $i | grep .mp3)"; done;
>большое спасибо за ответ, но дальше возникла еще 1 проблема, нужно создать папку, с именем выдернутого тега исполнителя, а так же папку с названием альбома и годом, в моем скрипте, с учетом Вашего комментария я сделал так:
IFS=$'\b'
for tar in `cd /stripe/temp/music && ls *.rar`
do unrar x "$tar" && find . -print0 | while read -d $'\0' song
doartist=`mediainfo "$(echo $song | grep .mp3)" | grep Performer | awk '{print $3}
'`
album=`mediainfo "$(echo $song | grep .mp3)" | grep Album | awk '{ for (i=3 ; i<
=NF; i++) printf $i" "; print "" }'`
year=`mediainfo "$(echo $song | grep .mp3)"| grep Recorded | awk '{print $4}'`mkdir -p /stripe/temp/sorted/$artist
mkdir -p "/stripe/temp/sorted/$artist/$album $year"
mv "$song" "/stripe/temp/sorted/$artist/$album $year"done
проблема в том, что папка не создается, и скрипт на это ругается, команды запущенные руками - отрабатывают, подскажите пожалуйста в чем может быть проблема.
> проблема в том, что папка не создается, и скрипт на это ругается,
> команды запущенные руками - отрабатывают, подскажите пожалуйста в чем может быть
> проблема.ну как, сложно не признать тот факт, что проблема - в чтении и понимании вами документации и статей, а также в чтении и понимании сообщений об ошибках, которые возникают при работе вашего скрипта. Вы считаете, что он "просто ругается", а надо хотя бы знакомые буквы на экране поискать.
>>> Подозреваю, что возможно где-то ошибся с экранированием.
>> Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот
> ...
> mkdir -p "/stripe/temp/sorted/$artist/$album $year"
> mv "$song" "/stripe/temp/sorted/$artist/$album $year"Пробелы не заэкранировал
mkdir -p "/stripe/temp/sorted/$artist/$album\ $year"
mv "$song" "/stripe/temp/sorted/$artist/$album\ $year"Можна вопрос, нафига опять создавать папки с пробелами? Назло врагам, чтоб другие мучились? :)
$album-$year
$album_$year
$album.$year
>[оверквотинг удален]
> Пробелы не заэкранировал
>
> mkdir -p "/stripe/temp/sorted/$artist/$album\ $year"
> mv "$song" "/stripe/temp/sorted/$artist/$album\ $year"
>
> Можна вопрос, нафига опять создавать папки с пробелами? Назло врагам, чтоб другие
> мучились? :)
> $album-$year
> $album_$year
> $album.$yearбольшое спасибо, скрипт дописал, но там, по сути полностью переработал его
> Можна вопрос, нафига опять создавать папки с пробелами?По _пробелам в шишдошс подписи под ярлычками (по словам!) переносятся.
Это правильно. Это надо. Ты не в курсе.
> Назло врагам, чтоб другие мучились? :)
>> Можна вопрос, нафига опять создавать папки с пробелами?
> По _пробелам в шишдошс подписи под ярлычками (по словам!) переносятся.Это типа что-то "Отчёт для бухгалтерии за 2012 по оптовым продажам хлопковых подгузников фирмы «Никалуназад» © в формате Акробат.pdf"