The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Вопрос по скрипту, !*! 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, 23:00 , 29-Ноя-12 (1) +1
    > Подозреваю, что возможно где-то ошибся с экранированием.

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


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

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


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

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

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


      • Вопрос по скрипту, !*! pavlinux, 16:59 , 30-Ноя-12 (4)
        >>> Подозреваю, что возможно где-то ошибся с экранированием.
        >> Каждый раз под Новый год /мы с друзьями отправляемся в баню/вылазит этот
        > ...
        > 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, 22:09 , 03-Дек-12 (5)
          >[оверквотинг удален]
          > Пробелы не заэкранировал
          >
           
          > mkdir -p "/stripe/temp/sorted/$artist/$album\ $year"
          > mv "$song" "/stripe/temp/sorted/$artist/$album\ $year"
          >

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

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

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

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

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

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

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

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




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

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