Список и удаление альбомов со слишком небольшой скоростью передачи звука

Я чищу свою музыкальную библиотеку и застрял с избавлением от тысяч альбомов со скоростью передачи <320 Кбит/с, которые собирались там на годы. Проверка единственной скорости передачи файлов и удаление целой папки вручную действительно утомительны. Возможно, кто-то здесь может придумать некоторую идею, которая помогла бы мне с очисткой? Я хотел бы иметь после того единственного MP3s@320kbps и агентов по печати.Заранее спасибо!

3
задан 29 September 2014 в 19:47

2 ответа

Вот подход оболочки. Это удалит любые каталоги, которые не содержат .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 файл. Это будет только выполнено, если его скорость передачи будет меньше, чем желаема.

3
ответ дан 17 November 2019 в 19:58

От @DavidFoerster комментарий я использовал бы Банши.

Импорт все Ваши медиа-файлы от папки (или даже целые разделы) Вы хотите путем движения в media-> import media и выбираете папки.

Однажды все Ваши медиа был импортирован, щелкают правой кнопкой по панели столбца (показанный ниже в снимке экрана) и выбирают Bitrate. Тогда нажмите на имя столбца для упорядочивания тем столбцом.

можно тогда выбрать Скорость передачи, которую Вы хотите (в Вашем случае 320), прокручивают вниз, нажимают Сдвиг и нажимают последнюю песню. Тогда щелкните правой кнопкой по выбранным песням и выберите Delete from Drive.

enter image description here

2
ответ дан 17 November 2019 в 19:58

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

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