我正在尝试制作一个脚本,该脚本可以爬行给定目录并列出所有 x265 文件。使用 mediainfo 可以查看文件是 x264 还是 x265,然后使用 sed 清理文本。我不明白的部分是:
1.我如何表述在 cli 中有效但在此处无效的命令以及
2.我如何让它包含子目录。
#!/bin/bash
for file in ls
search='mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//''
if [ $search -eq 265 ]
then
echo $file is a 265
else
echo $file is not 265 and is $search
fi
答案1
您可以使用for
这样的格式:
for file in **/*
获取当前目录和子目录中的所有文件。
要将返回值分配给变量,请使用反引号
search=`mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//'`
如果您使用类似的东西可以简化您的输出:
mediainfo --Inform="Video;%Codec%" $file
或者
ffprobe $file 2>&1 >/dev/null | grep Stream.*Video