У меня есть несколько папок с файлами FLAC 24/96 и 16 / 44.1.
Я хочу удалить файлы с 24-битной / 96 кГц, но оставлю остальные. Как мне это сделать из командной строки? Есть ли способ систематической сортировки файлов по метаданным и последующего использования этого списка с rm
?
Для полноты картины также стоит упомянуть, что также очень легко открыть каталог и его подкаталоги в 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
для всего, но все они имеют разные выходы с медиаинформацией, чрезмерно настраиваемой.