Как сортировать / искать видеофайлы на основе свойств?

Старый диалог GUI по-прежнему доступен, если вы все еще хотите использовать это:

Используя Alt + F2, введите

gnome-desktop-item-edit --create-new ~/Desktop

Это будет запустите старый диалог графического интерфейса, и вы можете создать ярлык на рабочем столе.

В качестве предварительного условия gnome-desktop-item-edit устанавливается автоматически, если вы установили gnome-shell или gnome-shell-fallback.

В качестве альтернативы вы можете установить панель (которая устанавливает этот модуль) без большого количества других ресурсов:

[ f6]

1
задан 3 April 2017 в 19:26

4 ответа

Включить расширенное и рекурсивное подтачивание:

shopt -s extglob globstar

Затем:

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

** будет возвращаться в подкаталоги. Расширенное glob +(*.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 с ними в качестве аргумента.

Отключить параметры глобулизации, когда это делается:

shopt -u globstar globstar

Чтобы исключить несколько разрешений, используйте OR в 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)$'
2
ответ дан 23 May 2018 в 00:01
  • 1
    Хороший, такой простой :) – bart 3 April 2017 в 14:54
  • 2
    Можем ли мы исключить несколько резолюций? Например, для 1920x816, 1920x820, 1280x544, я говорю обо всех разрешениях, которые могут быть определены как HD или выше. Я хочу сохранить их (я, наверное, должен остановиться, я прошу все больше и больше) – Sumeet Deshmukh 3 April 2017 в 14:54
  • 3
    просто попробовал, и он работал (не мог попробовать раньше), " он работал " это упрощение, оно работает как шарм. если вы могли бы обновить ответ с кодом, чтобы исключить хотя бы два разрешения , я могу добавить все остальные самостоятельно. если вы не можете, это тоже хорошо, я могу жить с этим! Linux потрясающе, позвольте мне поддержать этот ответ – Sumeet Deshmukh 3 April 2017 в 15:10
  • 4
    @SumeetDeshmukh посмотреть обновление. – muru 3 April 2017 в 15:11
  • 5
    @muru спасибо, снова удалили 125Gb – Sumeet Deshmukh 3 April 2017 в 17:13

Включить расширенное и рекурсивное подтачивание:

shopt -s extglob globstar

Затем:

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

** будет возвращаться в подкаталоги. Расширенное glob +(*.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 с ними в качестве аргумента.

Отключить параметры глобулизации, когда это делается:

shopt -u globstar globstar

Чтобы исключить несколько разрешений, используйте OR в 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)$'
2
ответ дан 18 July 2018 в 15:36

Включить расширенное и рекурсивное подтачивание:

shopt -s extglob globstar

Затем:

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

** будет возвращаться в подкаталоги. Расширенное glob +(*.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 с ними в качестве аргумента.

Отключить параметры глобулизации, когда это делается:

shopt -u globstar globstar

Чтобы исключить несколько разрешений, используйте OR в 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)$'
2
ответ дан 24 July 2018 в 20:40

Включить расширенное и рекурсивное подтачивание:

shopt -s extglob globstar

Затем:

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

** будет возвращаться в подкаталоги. Расширенное glob +(*.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 с ними в качестве аргумента.

Отключить параметры глобулизации, когда это делается:

shopt -u globstar globstar

Чтобы исключить несколько разрешений, используйте OR в 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)$'
2
ответ дан 31 July 2018 в 23:42

Другие вопросы по тегам:

Похожие вопросы: