循环遍历文本文件中的 URL 列表

循环遍历文本文件中的 URL 列表

我有一个 URL 列表,如下所示:

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

每个 url 都在一个换行符上。我想要执行涉及每个 url 的命令,如下所示:

ytdl "<one url>" -a

我本质上想使用文本文件中的每个 URL 运行命令一。使用 shell 脚本可以做到这一点吗?

答案1

以下是我所做的:

#!/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/

答案2

使用 GNU Parallel:

parallel ytdl {} -a :::: urlfile

要了解更多信息,请观看介绍视频:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1并花一个小时完成教程http://www.gnu.org/software/parallel/parallel_tutorial.html您的命令行将会因此而爱上您。

相关内容