在 Linux 中使用 xargs 的问题

在 Linux 中使用 xargs 的问题

我正在尝试将 youtube-dl 的输出通过管道传输到,xargs因为我想用从第一个命令中提取的标题来命名下载的文件。但是我遇到了麻烦。我使用的命令如下;

youtube-dl --get-title "Youtube URI" | xargs youtube-dl -o {} "YouTube URI"

答案1

为了解决有关的具体问题xargs,您需要指定要使用的{}占位符:

youtube-dl --get-title "Youtube URI" |\
    xargs -I{} youtube-dl -o {} "Youtube URI"

请参阅man xargs以了解更多信息,以及 还暗示了哪些开关-I

因为它只是一个参数,所以使用替换会更直接:

youtube-dl -o "$(youtube-dl --get-title "Youtube URI")" "Youtube URI"

笔记这些构造将给你一个没有适当文件扩展名的文件。

实现你的目标的最直接的方法实际的如上所述,任务将使用内置标题命名选项:

youtube-dl -t "Youtube URI"

如上所述man youtube-dl。这还将为视频文件生成正确的文件扩展名。

答案2

我一直在阅读 youtube-dl 手册页:您要做的事情比这简单得多,您只需要 -t,--title 标志。

youtube-dl --title "Youtube URL"

或者

youtube-dl -t "Youtube URL"

http://dev.man-online.org/man1/youtube-dl/

相关内容