web-dev-qa-db-ja.com

プロパティに基づいてビデオファイルをソート/検索する方法は?

これはユニークな状況です

パーティションに500以上の映画があります。私がやりたかったのは、プロパティVideo Dimensionに基づいてムービーファイルを検索することです。 720p HD以下のすべてのものを削除して、他のもののためのスペースを空けることができます。

Nautilusの検索オプションは、日付またはファイルタイプで検索できますが、プロパティでは検索できません。私が使用できる別のアプリケーションはありますか?またはコマンド?またはNautilus-Script

Highlighting video dimension

[〜#〜] update [〜#〜]

find . -name '*.mkv' -exec exiftool -fileName -imageSize {} \; 

このコマンドは期待どおりに動作しますが、このコマンドでもう少しやることが必要です。 ExifToolの動作方法がわからないので変更できません

1つのコマンドで複数のファイル拡張子を追加できますか?ほとんどのファイルはmkvですが、mp4flv。これらすべてのビデオ拡張機能をスキャンする単一のコマンドで多くの作業を節約できます

enter image description here

(サブフォルダーの数を参照してください)

1
Sumeet Deshmukh

拡張された再帰的なグロビングを有効にします。

_shopt -s extglob globstar
_

次に:

_exiftool -q -p '$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv)
_

_**_はサブディレクトリに再帰します。拡張グロブ+(*.mp4|...)は、_()_内のパターンの少なくとも1つに一致します。

Grepを使用して出力を処理し、_1920x1080_ではないファイルのリストを生成できます。

_exiftool -q -p '$Directory/$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv) |
  grep -v ' 1920x1080$'
_

ここでの変更に注意してください:私は_$Directory/$FileName $Imagesize_を使用しています。ファイル名だけでなく、ファイルへのパスが必要なので、_$Directory/$Filename_です。ここで、各行が_1920x1080_で終わっていないかどうかを確認します(_$_は行の終わりです。grepの_-v_は一致を反転させます)。 出力の検証

これで、これらのファイルを削除できます。

_exiftool -q -p '$Directory/$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv) |
  grep -v ' 1920x1080$' | sed 's: [^ ]*$::' |
  xargs -d '\n' rm
_

_sed 's: [^ ]*$::'_は、最後から行末までのすべてを削除するため、AxBの出力からexiftool解像度が削除され、ファイル名のみが保持されます。次に、_xargs rm_は各行をファイル名として受け取り、それらを引数としてrmを実行します。

完了したら、グロビングオプションを無効にします。

_shopt -u globstar globstar
_

複数の解像度を除外するには、grepでORを使用します:

_grep -Ev ' (1920x1080|1920x820|1280x544)$'
_

これは、広く使用されているすべてのビデオ形式のコマンドです

_exiftool -q -p '$Directory/$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv|*.avi|*.webm|*.vob|*.mov|*.wmv|*.amv|*.m4p|*.m4v|*.mpeg|*.mpv|*.m4v|*.3gp)
_

これは、(ほぼ)すべてのHDビデオ形式を除外するコマンドです

_grep -Ev ' (1920x1080|1920x1040|1920x1068|1906x952|1916x808|1920x808|1920x804|1916x812|1600x864|1436x1080|1920x820|1280x544|1920x800|1920x802|1920x816|1856x1080|1920x1072|1920x1056|1280x720|1280x536|1280x560|1280x538|1280x528|1216x544|1280x534|1280x532|1281x534|1278x714|1280x718|1280x688|1278x682|1280x690|1280x694|1280x660|1282x692|1280x692|1285x696|1278x544|1280x696|1279x718|1280x546|1281x546|960x720|1324x552|1305x552|1308x552|1536x640)$'
_
2
muru