Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Помогите со скриптом декодировки аудио  (Прочитано 996 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ___WereMax___

  • Автор темы
  • Участник
  • *
  • Сообщений: 200
  • Бубен -самая нужная вещь СИС-админа
    • Просмотр профиля
Здравствуйте!
Помогите пожалуйста написать простенький скрипт на bash.
Необходимо просто, чтобы производился вход в директорию, в ней последовательность действий, выход из нее, вход в следующую и опять по кругу....
Не могу придумать как заставить его перебирать все директории в выбранном каталоге.

Помогите, плиз, если такое вообще возможно реализовать на баше..

Заранее благодарен!
« Последнее редактирование: 08 Ноября 2010, 22:06:39 от ___WereMax___ »

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Помогите с Bash
« Ответ #1 : 03 Ноября 2010, 19:26:29 »
ещё раз и подробней. Возможно тебе нужна утилита find:
find /some/path -type d -exec ls {} \;

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Помогите с Bash
« Ответ #2 : 03 Ноября 2010, 19:31:42 »
Здравствуйте!
Помогите пожалуйста написать простенький скрипт на bash.
Необходимо просто, чтобы производился вход в директорию, в ней последовательность действий, выход из нее, вход в следующую и опять по кругу....
Не могу придумать как заставить его перебирать все директории в выбранном каталоге.

Помогите, плиз, если такое вообще возможно реализовать на баше..

Заранее благодарен!
что надо делать в директории?
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн ___WereMax___

  • Автор темы
  • Участник
  • *
  • Сообщений: 200
  • Бубен -самая нужная вещь СИС-админа
    • Просмотр профиля
Re: Помогите с Bash
« Ответ #3 : 03 Ноября 2010, 19:54:16 »
что надо делать в директории?
история такая... имеется папка с музыкой (Music) в ней лежат подкаталоги с исполнителями, в них еще подкаталоги (типа концерты, синглы и проч.) а в них уже альбома, а там уже музыка в *.ape + *.cue....
ну и идея:
1) даю ему каталог музыки (допустим zenity --file-selection --directory)
2) и тут он начинает последовательно входить в каталоги и искать наличие файлов *.ape + *.cue
   нашел - ура выполняем:
 iconv -fcp1251 -tutf8 *.cue -o utf.cue
./cueape.sh *.ape utf.cue -m
cp /output/*.mp3 ./
rm /output/ *.cue *.ape *.log
   не нашел - идем дальше...
вот и все... в итоге 2Тб музыки переконверитится в мр3, а все лишнее удалиться..
просто в каждую папку в ручную заходить - клаву, наверное, сломаю)))

ЗЫ: команды копирования я написал просто-так не задумываясь над синтаксисом и проч.. только идею передать...

Пользователь решил продолжить мысль [time]Wed Nov  3 15:56:47 2010[/time]:
ну и, конечно,  надо будет закинуть скрипт "cueape.sh" в /usr/bin

Пользователь решил продолжить мысль [time]Thu Nov  4 08:29:27 2010[/time]:
Я пока навоял мини-скриптик с выбором одного каталога и выполнением всех необходимых действий:
#! /bin/bash
# Получаем имя исходной директории
Dir=`zenity --file-selection --directory --title='Выберите директорию с музыкой, которую надо перекодировать'`
cd "$Dir"
# перекодирование *.cue файла в utf8
iconv -fcp1251 -tutf8 *.cue -o utf.cue
# переколировка в *.мр3
cueape *.ape utf.cue -m
# возвращаемся в исходную директорию
cd "$Dir"
# удаляем от туда все файлы
rm *
# перемещаем *.мр3 файлы в исходный каталог
mv "$Dir"/Output/* "$Dir"
# удаляем временный каталог
rm -r Output

До его выполнения в каталоге вот это:
~/2010 - Сингл (CD Maximum)$ ls
Scan  Singl.ape  Singl.cue  Singl.log
После:
~/2010 - Сингл (CD Maximum)$ ls
1 - Твердый знак.mp3  2 - В путь.mp3  3 - Работа.mp3  Scan

Если пригодиться, то вот скрипт cueape:
/usr/bin$ cat cueape
(Нажмите, чтобы показать/скрыть)

Вот.... Но это только чуть-чуть облегчает жизнь: все равно надо каждые 15-20 секунд запускать скрипт и указывать новую директорию  :idiot2:

Я думал, например, сделать:
find /dir/ -type d -exec ls {} \; | grep .cue
а вывод занести в масиив
затем цикл с количеством шагов, равным количеству элементов в массиве
в нем просто последовательно он бы входил в директорию с данными файлами,
но я не осознал,как в баше массив создать..
« Последнее редактирование: 04 Ноября 2010, 10:43:22 от ___WereMax___ »

Оффлайн ___WereMax___

  • Автор темы
  • Участник
  • *
  • Сообщений: 200
  • Бубен -самая нужная вещь СИС-админа
    • Просмотр профиля
Re: Помогите с Bash
« Ответ #4 : 08 Ноября 2010, 20:38:36 »
Чтож... Проблема практически решена... То есть мой скрипт просматривает все вложенные каталоги на предмет нахождения в нем *.ape и если находит, то декодирует его либо в mp3 либо в ogg...
осталось немного проблем:
1. не могу добавить возможность выбора постоянного битрейда в огг
2. почему-то при декодировании в мр3 тэги не гребуться с куе файла (в огг все работает)

ну и все..
вот ниже мой скрипт:

(Нажмите, чтобы показать/скрыть)

Если кто может - подскажите, как решить оставшиеся проблемы.
« Последнее редактирование: 08 Ноября 2010, 22:05:59 от ___WereMax___ »

 

Страница сгенерирована за 0.023 секунд. Запросов: 21.