URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9590
[ Назад ]

Исходное сообщение
"Вопрос по скрипту"

Отправлено TheFatal , 29-Ноя-12 17:03 
Доброго времени суток, есть задача: поиск всех 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.mp3

mediainfo "/stripe/temp/music/2012 - The Acausal Fire/Bane - 03 In endless silence.mp3" | grep Performer
Performer                                : Bane

Подскажите пожалуйста, в чем может быть проблема ? Подозреваю, что возможно где-то ошибся с экранированием.


Содержание

Сообщения в этом обсуждении
"Вопрос по скрипту"
Отправлено pavlinux , 29-Ноя-12 23:00 
> Подозреваю, что возможно где-то ошибся с экранированием.

Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот вопрос/! :)


find /stripe/temp/music/ -name "*.mp3" -exec  mediainfo {} \;

find . -print0 | while read -d $'\0' i; do mediainfo "$(echo $i | grep .mp3)"; done;



"Вопрос по скрипту"
Отправлено TheFatal , 30-Ноя-12 13:30 
>> Подозреваю, что возможно где-то ошибся с экранированием.
> Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот
> вопрос/! :)
>
 
> 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
do

artist=`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


проблема в том, что папка не создается, и скрипт на это ругается, команды запущенные руками - отрабатывают, подскажите пожалуйста в чем может быть проблема.


"Вопрос по скрипту"
Отправлено PavelR , 30-Ноя-12 15:30 

> проблема в том, что папка не создается, и скрипт на это ругается,
> команды запущенные руками - отрабатывают, подскажите пожалуйста в чем может быть
> проблема.

ну как, сложно не признать тот факт, что проблема - в чтении и понимании вами документации и статей, а также в чтении и понимании сообщений об ошибках, которые возникают при работе вашего скрипта. Вы считаете, что он "просто ругается", а надо хотя бы знакомые буквы на экране поискать.



"Вопрос по скрипту"
Отправлено pavlinux , 30-Ноя-12 16:59 
>>> Подозреваю, что возможно где-то ошибся с экранированием.
>> Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот
> ...
> 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



"Вопрос по скрипту"
Отправлено TheFatal , 03-Дек-12 22:09 
>[оверквотинг удален]
> Пробелы не заэкранировал
>
 
> mkdir -p "/stripe/temp/sorted/$artist/$album\ $year"
> mv "$song" "/stripe/temp/sorted/$artist/$album\ $year"
>

> Можна вопрос, нафига опять создавать папки с пробелами? Назло врагам, чтоб другие
> мучились? :)
> $album-$year
> $album_$year
> $album.$year

большое спасибо, скрипт дописал, но там, по сути полностью переработал его


"Вопрос по скрипту"
Отправлено Andrey Mitrofanov , 04-Дек-12 09:28 
> Можна вопрос, нафига опять создавать папки с пробелами?

По _пробелам в шишдошс подписи под ярлычками (по словам!) переносятся.

Это правильно. Это надо. Ты не в курсе.

> Назло врагам, чтоб другие мучились? :)


"Вопрос по скрипту"
Отправлено pavlinux , 04-Дек-12 14:03 
>> Можна вопрос, нафига опять создавать папки с пробелами?
> По _пробелам в шишдошс подписи под ярлычками (по словам!) переносятся.

Это типа что-то "Отчёт для бухгалтерии за 2012 по оптовым продажам хлопковых подгузников фирмы «Никалуназад» © в формате Акробат.pdf"