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
nullglob
シェルオプションの設定: shopt -s nullglob
.from man bash
:
nullglob
一致するファイル名がなく、有効なシェルオプションがない場合、単語は変更されずに残ります。このオプションが設定されていて一致するものがない場合、そのnullglob
単語は削除されます。