Я пытаюсь настроить сценарий bash, который загружает только песни, которых у меня еще нет в моем списке воспроизведения. Для этого я использую youtube-dl
. Я не могу придумать эффективный способ сделать это. На данный момент я пытаюсь это сделать, чтобы загрузить все заголовки в один файл и все ссылки в другой файл, а затем проверить, присутствует ли определенный заголовок в текущем каталоге, и, если нет, захватить ссылку в этом конкретном индексе.
Проблема: Использование awk дает мне эту ошибку
upPlay.sh: line 50: Amy: command not found
upPlay.sh: line 50: Amy: command not found
upPlay.sh: line 50: Amy: command not found
upPlay.sh: line 50: Amy: command not found
upPlay.sh: line 50: Amy: command not found
upPlay.sh: line 50: Tony: command not found
Это линия, которую я использую
for (( j=1; j < $cnt; j++ )); do
#echo "$j"
`awk -v ind = "$j" 'FNR==ind{print $0}' title.txt`
done
В заголовках есть пробелы. Я предполагаю, что это причина проблемы. Есть идеи, как это исправить?
youtube-dl имеет встроенные функции для этого конкретного варианта использования: передайте параметр --download-archive SOME_FILE
, где SOME_FILE
- это расположение файла архива. Этот архивный файл будет содержать список всех загруженных идентификаторов видео, и youtube-dl будет эффективно их пропускать.
как мне создать этот архив? Если у меня его нет, создаст ли его --download-archive
?
Если архивного файла нет, youtube-dl создаст его автоматически.
Также см. Как использовать Shellcheck, Как отлаживать сценарий bash? (U & L.SE), Как отлаживать сценарий bash? (SO), Как отлаживать скрипт bash? (AskU), Отладка скриптов Bash и т. д.