Я чищу свою музыкальную библиотеку и застрял с избавлением от тысяч альбомов со скоростью передачи <320 Кбит/с, которые собирались там на годы. Проверка единственной скорости передачи файлов и удаление целой папки вручную действительно утомительны. Возможно, кто-то здесь может придумать некоторую идею, которая помогла бы мне с очисткой? Я хотел бы иметь после того единственного MP3s@320kbps и агентов по печати.Заранее спасибо!
Вот подход оболочки. Это удалит любые каталоги, которые не содержат .mp3
файлы> = скорость передачи на 320 Кбит/с:
find /path/to/Music -type d -print0 |
while IFS= read -r -d '' dir; do
mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1);
[ -e "$mp3" ] && [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]] &&
rm -rf "$(dirname "$mp3")";
done
Это удалит любые каталоги, которые содержат по крайней мере один mp3 файл со скоростью передачи меньше чем 320. Если другой файл существует в том же каталоге с правильной скоростью передачи, которая будет удалена также. Этот подход предполагает, что все файлы в каталоге имеют ту же скорость передачи.
Это пропустит файлы переменной скорости передачи.
Это должно работать с любым типом имени файла, включая тех, которые имеют пробелы, новые строки или даже обратные косые черты.
Вы, возможно, должны были бы установить mp3info
: sudo apt-get install mp3info
Выполните его на тестовом каталоге сначала.
find /path/to/Music -type d -print0
: найдите все каталоги под /path/to/Music
и распечатайте их разделенный пустой строкой. Это необходимо для контакта со странными именами файлов.
while IFS= read -r -d '' dir; do
: пройдите каждый из результатов find
, сохранение их в $dir
переменная.
mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1);
: сохраните название первого mp3 файла в этом каталоге как $mp3
.
[ -e "$mp3" ]
: если этот файл существует. Это необходимо для пропуска каталогов без mp3 файлов.
[[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]]
: это проверяет скорость передачи $mp3
. Это работает mp3info
, захватывает скорость передачи и проверяет, являются ли это меньше, чем 320
.
rm -rf "$(dirname "$mp3")";
: удалите каталог, который содержит mp3 файл. Это будет только выполнено, если его скорость передачи будет меньше, чем желаема.
От @DavidFoerster комментарий я использовал бы Банши.
Импорт все Ваши медиа-файлы от папки (или даже целые разделы) Вы хотите путем движения в media
-> import media
и выбираете папки.
Однажды все Ваши медиа был импортирован, щелкают правой кнопкой по панели столбца (показанный ниже в снимке экрана) и выбирают Bitrate
. Тогда нажмите на имя столбца для упорядочивания тем столбцом.
можно тогда выбрать Скорость передачи, которую Вы хотите (в Вашем случае 320), прокручивают вниз, нажимают Сдвиг и нажимают последнюю песню. Тогда щелкните правой кнопкой по выбранным песням и выберите Delete from Drive
.