我使用以下命令将视频库从 x264 转换为 x265:
它在文件名中的任何位置查找 x264,但排除任何以 x265 开头的文件,因为这些是已完成的文件。
sudo find /mnt/local/int001/media/TV/ -name '*x264*.mkv' -and -not -name 'X265*.mkv' -print0 | xargs -0 /usr/local/bin/ConvertTo265.sh
我发现很多标记为 h264(编码标准)而不是 x264(h264 的具体实现)以及其他变体。
如何增强我的搜索:
不包含“X265*”,但包含以下一项或多项:
- 'x264'
- 'h264'
- '264'
答案1
find /mnt/local/int001/media/TV/ \
\( -name '*[xXhH]264*.mkv' -o -name '*[xXhH].264*.mkv' \) \
! -name '*[xX]265*' -type f -exec /usr/local/bin/ConvertTo265.sh {} +
这里将您的 GNUisms ( -and
, -not
, -print0
/ xargs -0
) 替换为它们的标准等效项(-a
或者什么也不做,因为这是默认的,!
, -exec cmd {} +
)。
如果您想不区分大小写地匹配扩展名,则替换mkv
为(或者如果使用 GNU或兼容版本则使用)。[mM][kK][vV]
-iname
find
和zsh
:
set -o extendedglob # best in ~/.zshrc
ConvertTo265.sh ./**/(#i)(*x265*~*[xh](.|)264*).mkv(D.)