Faz loop por meio de uma lista de URLs em um arquivo de texto

1

Eu tenho uma lista de URLs semelhantes às seguintes:

http://www.youtube.com/watch?v=QVgFCCQWBOs
http://www.youtube.com/watch?v=8TrMhR7ZpBk
http://www.youtube.com/watch?v=8ctAvtBJB3s
http://www.youtube.com/watch?v=xTB79UdZahU
http://www.youtube.com/watch?v=GjTlEM99rv8
http://www.youtube.com/watch?v=XRdUgPGsj3k
http://www.youtube.com/watch?v=_700uBiNv-A

Cada URL está em uma nova linha. Eu quero executar um comando envolvendo cada URL assim:

ytdl "<one url>" -a

Eu essencialmente quero executar o comando um usando cada url presente no arquivo de texto. Isso é possível com um script de shell?

    
por ComputerLocus 23.11.2013 / 01:36

2 respostas

2

Aqui está o que eu fiz:

#!/bin/sh
echo '---------------------------------------------'
echo 'Now downloading all videos from videoList.txt'
echo '---------------------------------------------'


while read p;
  do   ytdl "$p" -a;
done < videoList.txt

echo '---------------------------------------------'
echo 'Completed downloading all videos in the list'
echo '---------------------------------------------'


echo '---------------------------------------------'
echo 'Moving .m4a and .ogg files to correct folder'
echo '---------------------------------------------'
mv *.m4a ~/Music/youtubeDownloads/
mv *.ogg ~/Music/youtubeDownloads/
    
por 23.11.2013 / 03:56
1

Use o Paralelo GNU:

parallel ytdl {} -a :::: urlfile

Para saber mais, assista aos vídeos de introdução: link e passe uma hora caminhando no tutorial link Sua linha de comando vai adorar você por isso.

    
por 23.11.2013 / 12:44

Tags