Это - уникальная ситуация
У меня есть больше чем 500 Фильмов в разделе. то, что я хотел сделать, искать файлы ролика на основе Размера Видео Свойства, так, чтобы я мог удалить что-либо, что является ниже HD на 720 пунктов, для создания пространства для другого материала.
Параметр поиска в наутилусе может искать датами или типами файлов, но не свойствами. есть ли другое приложение, которое я могу использовать? или Команда? или Сценарий Наутилуса?
ОБНОВЛЕНИЕ
find . -name '*.mkv' -exec exiftool -fileName -imageSize {} \;
Эта команда работает как ожидалось, но я хочу, чтобы эта команда сделала немного больше. я не знаю, как ExifTool работает так, я не могу изменить его
я могу добавить несколько расширений файла в единственной команде? большинство файлов mkv
но это включает mp4
flv
. единственная команда, сканируя все эти видео расширения могла сохранить большую работу
(см., сколько sub папки там),
Включите расширенный и рекурсивный globbing:
shopt -s extglob globstar
Затем:
exiftool -q -p '$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv)
**
рекурсивно вызовет в подкаталоги. Расширенный шарик +(*.mp4|...)
будет соответствовать по крайней мере одному из шаблонов в ()
.
Можно использовать grep, чтобы обработать вывод и генерировать список файлов нет 1920x1080
:
exiftool -q -p '$Directory/$FileName $ImageSize' **/+(*.mp4|*.mkv|*.flv) |
grep -v ' 1920x1080$'
Обратите внимание на изменения здесь: я использую $Directory/$FileName $Imagesize
. Нам нужен путь к файлу, не только имя файла, таким образом, $Directory/$Filename
. И Здесь мы проверяем, не заканчивается ли каждая строка 1920x1080
($
конец строки, -v
в grep инвертирует соответствие). Проверьте вывод.
Теперь мы можем удалить эти файлы:
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
с ними как аргумент.
Отключите globbing опции при выполнении:
shopt -u globstar globstar
Для исключения нескольких разрешений используйте ИЛИ в grep
:
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)$'