W odpowiedziach na Ręcznie ustawione liczenie słuchania utworów w Banshee? , opisuje, jak uzyskać dostęp do bazy danych używanej przez banshee do zapisywania wszystkich informacji o ścieżce.
Po nawiązaniu połączenia z bazą danych, w tabeli zapytań wykonaj, wklej
select tweaked_track, count(*) from
(select replace(replace(replace(title, ' ', ''), '-', ''), '.', '') as tweaked_track
from coretracks)
group by tweaked_track
order by 2, 1 desc;
w polu ciągu SQL, a następnie kliknij „wykonaj zapytanie”. Spowoduje to wyświetlenie wszystkich ścieżek o tym samym tytule, ignorując spacje, myślniki i kropki. Jeśli są inne znaki, które chcesz zignorować, dodaj je do zapytania według tego samego wzoru. (IE dodaj replace(
przed pierwszym istniejącym „zamień” i po ostatnim „)” w tym wierszu, dodaj , '[character you want removed]', '')
.
(Nie wiem, ile wiesz o sql - jeśli potrzebujesz więcej szczegółów, dodaj komentarz).
To da ci listę tytułów. Będziesz musiał sam usunąć.
Może to być lepszy sposób, ale jeśli tak, nie wiem o tym.
Gdy będziesz mieć dużą listę plików do usunięcia (z mojej metody lub z fdupes
innych, o których wspominali inni), umieść listę plików, które chcesz usunąć, w katalogu tekstowym. Upewnij się, że spełniony jest jeden z poniższych warunków:
Opcja nr 1: nazwy plików zawierają pełną ścieżkę. Na przykład plik może zawierać:
/home/doneill/music/weird_al/duped_file.mp3
/home/doneill/music/weird_al/another_dupe.mp3
/home/doneill/music/bach/baroque_dupe.mp3
Opcja nr 2: nazwy plików zawierają ścieżkę względną, a plik z listą nazw plików jest zapisywany w folderze nadrzędnym. Na przykład, jeśli lista plików została zapisana /home/doneill/music/
, zawierałaby:
weird_al/duped_file.mp3
weird_al/another_dupe.mp3
bach/baroque_dupe.mp3
W obu przypadkach otwórz okno terminala i przejdź do folderu zawierającego plik, cd /home/doneill/music/
na przykład z listą .
Wpisz:
for a in `cat filelist.txt`; do echo $a; done
(Zastąpienie pliku filelist.txt nazwą pliku z listą). To powinno wypluć listę wszystkich plików, które chcesz usunąć. Poświęć chwilę, aby dokładnie sprawdzić listę. Jeśli to prawda, wpisz:
for a in `cat filelist.txt`; do rm $a; done
To w zasadzie mówi komputerowi: dla każdego wiersza w pliku filelist.txt
usuń plik z wymienioną nazwą.