我很懒:)所以我想在我的网络上自动化一些东西。目前我正在运行一个脚本,可以自动下载我每周观看的系列节目。根据下载的内容,另一个脚本在网络上搜索字幕。但是有些下载有字幕,因此不需要搜索字幕。我想检查每个下载的字幕并获得通知(或更好地移动文件),如果文件具有正确的字幕。
我从以下开始:
find /volume2/Downloads/ -type f -mmin -30 | while IFS= read -r file; do
ffmpeg -i "${file}"
done
这样可以显示ffmpeg命令的输出,每个文件的输出时间超过30分钟。我想使用ffmpeg给出的结果,这样当输出中存在某些字符时,我会通过邮件通知我。然而,我的Linux脚本技能停留在我得到的脚本上。我是一名Web开发人员,所以我理解这样的脚本背后的逻辑,但不是特定的代码或命令。
我正在寻找的角色:
可以这样做吗?
修改
我做了一些研究并对我的剧本做了一些修改:
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输出,但它可能是朝着正确方向迈出的一步?
答案 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
中讨论了为您的方案使用管道的问题