Взятие и переименование созданного файла через канал или другие средства в bash

Самый первый вопрос:

Я новичок в этом бизнесе сценариев, но я пытался автоматизировать загрузку и переименование видео с YouTube с помощью youtube-dl. На самом деле я делаю это просто как техническое упражнение, чтобы узнать немного больше о сценариях bash.

Я использую команду:

youtube-dl -il "<Youtube URL>" --extract-audio --audio-format "mp3" --audio-quality "192k"

(который будет загружать отдельные видео или брать список воспроизведения и загружать все файлы), и это создает файл в следующем формате (пример):

Zedd - Spectrum (feat. Matthew Koma) (Culture_Code_Remix)-LCNwQVRN34.mp3

Где последняя ссылочная часть URL-адреса YouTube находится в конце.

Я написал скрипт для массового переименования всех файлов, который работает и выглядит следующим образом:

#!/bin/bash
for i in *.mp3 ; do
   j=`echo $i | awk -F"-" '{print $1 "-" $2}'`
   mv "$i" "$j"
done

в основном он просто отрезает последний кусок, мой вопрос в том, как я могу поместить это в другой формат, чтобы я мог либо передать его в конец, либо включить его и первую команду в один скрипт, чтобы я мог автоматизировать весь процесс ?

Заранее спасибо.


person jjrmcm    schedule 20.12.2012    source источник


Ответы (2)


Вы можете просто передать другой шаблон имени файла в youtube-dl с параметром -o:

youtube-dl -i "<Youtube URL>" -o "%(title)s.%(ext)s" \
            --extract-audio --audio-format "mp3" --audio-quality "192k"
person Community    schedule 20.12.2012

Я бы посоветовал вам запустить цикл for в файле списка воспроизведения и использовать переменную итерации в качестве входных данных для youtube-dl, а затем выполнить обработку mv.

person Anil Tallapragada    schedule 20.12.2012