The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вопрос по скрипту"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Вопрос по скрипту"  +/
Сообщение от TheFatal (ok) on 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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вопрос по скрипту"  +2 +/
Сообщение от pavlinux (ok) on 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;


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Вопрос по скрипту"  –1 +/
Сообщение от TheFatal (ok) on 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


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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Вопрос по скрипту"  +/
Сообщение от PavelR (ok) on 30-Ноя-12, 15:30 

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

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


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Вопрос по скрипту"  +/
Сообщение от pavlinux (ok) on 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


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Вопрос по скрипту"  +/
Сообщение от TheFatal (ok) on 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

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру