用脚本输出

时间:2017-11-03 08:44:52

标签: ffmpeg

我很懒:)所以我想在我的网络上自动化一些东西。目前我正在运行一个脚本,可以自动下载我每周观看的系列节目。根据下载的内容,另一个脚本在网络上搜索字幕。但是有些下载有字幕,因此不需要搜索字幕。我想检查每个下载的字幕并获得通知(或更好地移动文件),如果文件具有正确的字幕。

我从以下开始:

find /volume2/Downloads/ -type f -mmin -30 | while IFS= read -r file; do
    ffmpeg -i "${file}"
done

这样可以显示ffmpeg命令的输出,每个文件的输出时间超过30分钟。我想使用ffmpeg给出的结果,这样当输出中存在某些字符时,我会通过邮件通知我。然而,我的Linux脚本技能停留在我得到的脚本上。我是一名Web开发人员,所以我理解这样的脚本背后的逻辑,但不是特定的代码或命令。

我正在寻找的角色:

  • (eng):副标题:
  • (dut):副标题:

可以这样做吗?

修改

我做了一些研究并对我的剧本做了一些修改:

find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do
    if ffmpeg -i "${file}" | grep -q '(dut): Subtitle:'; then
        echo "matched"
    fi
done

而不是“匹配”它显示了ffmpeg输出,但它可能是朝着正确方向迈出的一步?

1 个答案:

答案 0 :(得分:1)

您需要将stderr重定向到stdout。

find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do
   if ffprobe -i "${file}" 2>&1 | grep -q '(dut): Subtitle:'; then
       echo "matched"
   fi
done

unix stackexchange

中讨论了为您的方案使用管道的问题