我正在编写一个脚本,使用 MediaInfo 打印媒体文件的分辨率。我硬编码了 marvel 目录,只是为了测试和获得正确的剪辑。
代码:
#!/bin/bash
for i in /mnt/D/tv/"Marvel (MCU)"/{*.mp4,*.mkv,*.avi,*.m4v}; do
mediainfo "$i" > temp
H=`cat temp | grep "Height" | cut -d ":" -f 2 | cut -c 2- | cut -d "p" -f 1`
W=`cat temp | grep "Width" | cut -d ":" -f 2 | cut -c 2- | cut -d "p" -f 1`
printf "%-50s %s x %s \n" "$(basename "$i")" "$W" "$H"
rm temp
done
输出:
1. Iron Man.mp4 1 920 x 800
10. Guardians of the Galaxy.mp4 1 280 x 536
...
8. Thor The Dark World.mkv 1 920 x 800
9. Captain America The Winter Soldier.mkv 1 280 x 534
*.avi x
*.m4v x
该文件夹中只有.mp4和.mkv文件,因此它打印了“*.avi”和“*.m4v”。如何禁止打印未找到的扩展名?
答案1
通过设置 shell 的nullglob
选项:shopt -s nullglob
.从man bash
:
nullglob
如果未找到匹配的文件名,并且未启用shell 选项,则该单词将保持不变。如果nullglob
设置了该选项,但未找到匹配项,则该单词将被删除。