Проблема.У меня есть x количество файлов zip, в каждом из которых n файлов аудио.Каждый аудиофайл имеет одно и то же имя, поэтому, когда я делаю распаковку дампа, мне приходится переименовывать файлы в терминале.Мой план состоит в том, чтобы циклически загружать zip-файлы и извлекать и переименовывать для каждого аудиофайла.Ошибка появляется, когда я пытаюсь переименовать извлеченный файл - хотя я вижу его в папке.
Где я иду не так?
script_dir = File.expand_path File.dirname(__FILE__)
Dir.chdir(script_dir)
Dir.glob('*.pencast').each do |pencast|
i = 1
`unzip -l #{pencast} | grep .aac | awk '{print $4;}'`.each do |zipped_audio|
pencast_title = File.basename(File.basename(pencast), '.*')
audio_title = File.basename(zipped_audio)
audio_extension = File.extname(File.basename(zipped_audio))
renamed = "#{pencast_title}-#{i}#{audio_extension}"
`unzip -j #{pencast} #{audio_title}`
File.rename(audio_title, renamed)
i += 1
end
end
Вывод:
prog2.rb:20:in `rename': No such file or directory - audio-0.aac (Errno::ENOENT)
or Cancer1-1-1.aac
from prog2.rb:20
from prog2.rb:11:in `each'
from prog2.rb:11
from prog2.rb:7:in `each'
from prog2.rb:7
Я могу найти файлы, я могу разархивировать нужные файлы, но это не такМне не нравится пытаться переименовать их.
Я думаю, что моя проблема, возможно, в том, что unzip -l #{pencast} | grep .aac | awk '{print $4;}'
находит 2 файла.Я добавлю | awk 'NR==1'
и посмотрю, смогу ли я куда-нибудь добраться