У мене є папка "Музика", а вміст виглядає так:
Music -ArtistA -Song1.mp3 -AlbumA -Song2.mp3 -Song2.m4a -AlbumB -Song1.mp3 -Song2.mp3 -Song3.mp3 -AlbumC -Song1.mp3 -Song1.jpg -SomeFolder1 -Song1.mp3 -ArtistB -Song1.mp3 -ArtistC -Song1.mp3 -Song2.mp3 -Song3.mp3 -SomeFolder2 -Song1.jpg -Song2.jpg -SomeFolder3
Я шукаю такий вивід:
ArtistA/Song1.mp3 ArtistA/AlbumA/Song2.mp3 ArtistA/AlbumC/Song1.mp3 ArtistA/AlbumC/SomeFolder1/Song1.mp3 ArtistB/Song1.mp3
Таким чином, я не хочу каталогів з одним файлом, я хочу каталоги з одним mp3 - незалежно від підкаталогів або інших файлів. Я також не хочу порожніх каталогів або каталогів, які містять більше одного mp3.
Я не проти скрипту оболонки для Linux. Однак я не хочу компілювати програму ні на одній з ОС.
Я намагався: find . -type d -exec sh -c 'set -- "$0"/*.mp3; [ $# -le 1 ]' {} \; -print
але це дає мені такий висновок:
. ./ArtistB ./ArtistA ./ArtistA/AlbumA ./ArtistA/AlbumC ./ArtistA/AlbumC/SomeFolder1 ./ArtistC/SomeFolder2 ./ArtistC/SomeFolder3
що близьке, але не зовсім те, що я хочу. Є дві порожні папки і немає назв файлів.