Как я могу удалить файлы на основе (flac) метаданных?

У меня есть несколько папок с файлами FLAC 24/96 и 16 / 44.1.

Я хочу удалить файлы с 24-битной / 96 кГц, но оставлю остальные. Как мне это сделать из командной строки? Есть ли способ систематической сортировки файлов по метаданным и последующего использования этого списка с rm?

1
задан 28 October 2013 в 16:42

1 ответ

Для полноты картины также стоит упомянуть, что также очень легко открыть каталог и его подкаталоги в Puddletag , отсортировать по нужным критериям, а затем отметить и удалить нужные файлы. Это может быть безопаснее и даже быстрее, чем настройка или написание совершенно нового сценария (см .: xkcd 1205 - Стоит ли это время? ).


Вы можете использовать metaflac ( manpage ) для файлов flac.

$ metaflac --show-sample-rate --show-bps "somefile.flac"
44100
16

Конечно, это не полный сценарий. Возможно, вы захотите взглянуть на Advanced Bash-Scripting Guide .

Следующее будет очень простым сценарием, который удаляет все файлы, которые возвращают 44100 и 16 вышеупомянутой команде. Каталог задается сценарию в качестве параметра (например, flac-44100-removal.sh "Music/All music with 44.1kHz/")

#!/bin/bash
IFS= 

Альтернативами метафлаку являются: vorbiscomment для ogg, AtomicParsley для mp4 / m4a, mid3v2 для mp3 или mediainfo для всего, но все они имеют разные выходы с медиаинформацией, чрезмерно настраиваемой.

\n' for file in $(find "${1}" -name "*.flac"); do if [ "$(metaflac --show-sample-rate "$file")" = "44100" ]; then if [ "$(metaflac --show-bps "$file")" = "16" ]; then rm -i "$file" fi fi done

Альтернативами метафлаку являются: vorbiscomment для ogg, AtomicParsley для mp4 / m4a, mid3v2 для mp3 или mediainfo для всего, но все они имеют разные выходы с медиаинформацией, чрезмерно настраиваемой.

0
ответ дан 28 October 2013 в 16:42

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

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