linux - 如何捕获 bash 脚本的输出并将其导入另一个脚本?

标签 linux bash youtube type-conversion

在我的 Arch Linux PC 上,我从官方存储库下载了软件包 youtube-dl。当我使用它以 mp4 格式下载 YouTube 视频时,结果如下所示(我将使用“$”来指示 shell 提示符):

`$ youtube-dl --format mp4 https://www.examplelink.com`

[youtube] Q0CbN8sfihY: Downloading webpage
[youtube] Q0CbN8sfihY: Downloading video info webpage
[youtube] Q0CbN8sfihY: Extracting video information
[youtube] Q0CbN8sfihY: Downloading MPD manifest
[download] Destination: ExampleVideo.mp4
[download] 100% of 15.07MiB in 00:20`

我希望从此输出中捕获视频标题,并将其导入另一个脚本,如下所示:

`#! /bin/bash`

`track=`echo "$@"`
music='/home/samuel/Music/'
video='/home/samuel/Videos/'
ffmpeg -i "$video$track".mp4 -acodec libmp3lame -ab 160k -ar 44100 -ac 2 "$music$track".mp3`

这会将 .mp4 文件转换为 .mp3 格式,进而创建一个完全自动化的过程。您将如何捕捉视频标题的名称并将其导入其他脚本?

最佳答案

你可以尝试这样的事情: 第一行给你设置一个变量,然后我重命名并移动文件以删除空格(也可以应用于其他字符)

filename=$(youtube-dl --format mp4 https://www.youtube.com/watch?v=VgbnndezHbw|grep Destination|cut -f2 -d:) echo “$文件名” newfilename="$(echo "$filename"|sed "s/^[\t]*//"|tr ' ' '_')" mv "$(echo "$filename"|sed 's/^ *//')""$newfilename" echo "$新文件名"

关于linux - 如何捕获 bash 脚本的输出并将其导入另一个脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712677/

相关文章:

Youtube channel 横幅图片 URL

linux - 用于扫描 iBeacon 并在 Raspberry Pi 上使用 GPIO 的 Bash 脚本

linux - 加入两个文件,包括 Shell 中不匹配的行

javascript - 显示 JSON 请求

linux - 在Linux中查找某个文件并打印其创建和修改时间

bash - 来自 shell : Delete all files with apostrophes

html - 视频播放加载,然后重定向到index.html

linux - lcov - 在运行时创建和使用 gcad 文件

linux - 使用 iptables 打开端口

linux - 如何使用 unixODBC 和 FreeTDS 连接到 Azure?