Partia usuwa numer ścieżki z plików muzycznych na raz

1

W folderze mam około 600 plików mp3. Wszystkie utwory mają numery przed ich nazwami. Chcę usunąć numer ścieżki ze wszystkich plików. Wiem, że mogę zmienić nazwę tych plików i ręcznie usunąć numery. Ale zmieniając wszystkie pliki jeden po drugim, zajmie to dużo czasu. Chcę wiedzieć, czy jest jakaś inna metoda, która może usunąć numer ścieżki na raz? Dla twojej informacji używam Ubuntu 12.04, więc uprzejmie pomóż mi. Wszelkie sugestie i pomoc będą naprawdę znaczące. Dzięki

użytkownik159377
źródło
Czy wszystkie liczby są jednakowo długie lub oddzielone myślnikiem? (np. wszystkie pliki MP3 mają nazwę 01. piosenka.mp3. Pozwoliłoby to na odfiltrowanie myślnika, np cut -d'-' -f2-. przez . To można połączyć zfor song in *.mp3 l do something with mv and with cut ; done
Hennes

Odpowiedzi:

2
  1. Zainstaluj EasyTAG z Centrum oprogramowania Ubuntu.
  2. Otwórz EasyTAG i przejdź do katalogu zawierającego wszystkie pliki muzyczne.
  3. Wybierz wszystkie swoje pliki mp3. Wszystkie zostaną wymienione w środkowym okienku, w tym pliki utworów znajdujące się w podkatalogach.
  4. Kliknij przycisk „Skanuj pliki” na pasku menu, który ma ikonę z obrazem jasnozielonej i białej strony.
  5. W opcji „Skaner” wybierz „Zmień nazwę pliku i katalogu”.
  6. W polu wejściowym zatytułowanym „Zmień nazwę pliku i katalogu” wpisz % t .
  7. Kliknij przycisk „Zapisz plik (i)”. Ma ikonę z obrazem dysku twardego z zieloną strzałką. Potwierdź, że chcesz zmienić operację zmiany nazwy na wszystkie wybrane pliki.

To wszystko. Właśnie zmieniłeś nazwę wszystkich 600 plików. To nie zmienia znaczników metadanych, tylko nazwy plików.

Karel
źródło
1

Najłatwiej to zrobić za renamepomocą wiersza polecenia. Na przykład:

rename 's/^\d\d //' ./*.mp3

... to będzie włączyć plik o nazwie 01 trackname.mp3się trackname.mp3, i będzie działać na wszystkich * .mp3s w katalogu roboczym.

\djest perlexpr dla [0-9]i ^oznacza „początek łańcucha” (aby nie pozbył się żadnych liczb w nazwie ścieżki). Możesz /^\d\d /dopasować dowolny wzór - jeśli chcesz się go pozbyć -, możesz to zrobić.

Alternatywnie możesz użyć po prostu bash:

for f in ./*.mp3; do mv "$f" "${f#[0-9][0-9] }"; done

Jeśli masz pliki w wielu katalogach, musisz użyć find. Powiedzmy, że chcesz zmienić nazwę każdego * .mp3 w ~ / Music i wszystkich podkatalogach:

find ~/Music -type f -name '*.mp3' -exec rename 's/^\d\d //' {} \;
##  or
find ~/Music -type f -name '*.mp3' -exec bash -c 'mv "$0" "${0#[0-9][0-9] }"' {} \;
zła
źródło