Nas respostas a Definir manualmente a contagem de faixas no Banshee? , descreve como obter no banco de dados que o banshee usa para salvar todas as informações da faixa.
Quando estiver conectado ao banco de dados, na tabela de consultas de execução, cole
select tweaked_track, count(*) from
(select replace(replace(replace(title, ' ', ''), '-', ''), '.', '') as tweaked_track
from coretracks)
group by tweaked_track
order by 2, 1 desc;
na caixa de texto SQL, clique em "executar consulta". Isso mostrará todas as faixas que você tem com o mesmo título, ignorando espaços, traços e pontos. Se houver outros caracteres que você deseja ignorar, adicione-os à consulta no mesmo padrão. (IE adicione replace(
antes do primeiro "substituir" existente e depois do último ")" nessa linha, adicione , '[character you want removed]', '')
.
(Eu não sei o quanto você sabe sobre sql - se você precisar de mais detalhes, poste um comentário.)
Isso lhe dará uma lista de títulos. Você terá que fazer a exclusão sozinho.
Pode haver uma maneira melhor de fazer isso, mas se houver, eu não sei sobre isso.
Uma vez que você tenha uma grande lista de arquivos a serem apagados (seja do meu método ou de fdupes
, como os outros mencionaram), coloque a lista de arquivos que você deseja excluir em um diretório de texto. Certifique-se de que uma das seguintes situações seja verdadeira:
Opção nº 1: os nomes dos arquivos contêm o caminho completo. Por exemplo, o arquivo pode conter:
/home/doneill/music/weird_al/duped_file.mp3
/home/doneill/music/weird_al/another_dupe.mp3
/home/doneill/music/bach/baroque_dupe.mp3
Opção 2: Os nomes dos arquivos contêm o caminho relativo e o arquivo com a lista de nomes de arquivos é salvo na pasta pai. Por exemplo, se a sua lista de arquivos foi salva em /home/doneill/music/
, ela conterá:
weird_al/duped_file.mp3
weird_al/another_dupe.mp3
bach/baroque_dupe.mp3
Em ambos os casos, abra uma janela de terminal e mude para a pasta que contém o arquivo com a lista cd /home/doneill/music/
, por exemplo.
Digite:
for a in 'cat filelist.txt'; do echo $a; done
(Substituindo filelist.txt pelo nome do arquivo com a lista). Isso deve mostrar uma lista de todos os arquivos que você deseja excluir. Tome um momento para verificar novamente a lista. Se estiver certo, digite:
for a in 'cat filelist.txt'; do rm $a; done
Isso basicamente diz ao seu computador: para cada linha no arquivo filelist.txt
, remova um arquivo com o nome listado.