我有一个 Music 文件夹,内容如下:
音乐 -艺术家A -歌曲1.mp3 -专辑A -歌曲2.mp3 -歌曲2.m4a -专辑B -歌曲1.mp3 -歌曲2.mp3 -歌曲3.mp3 -专辑C -歌曲1.mp3 -歌曲1.jpg -SomeFolder1 -歌曲1.mp3 -艺术家B -歌曲1.mp3 -艺术家C -歌曲1.mp3 -歌曲2.mp3 -歌曲3.mp3 -SomeFolder2 -歌曲1.jpg -Song2.jpg -SomeFolder3
我正在寻找这样的输出:
艺术家A/歌曲1.mp3 艺术家A/AlbumA/Song2.mp3 艺术家A/专辑C/Song1.mp3 艺术家A/AlbumC/SomeFolder1/Song1.mp3 艺术家B/歌曲1.mp3
所以,我不想要只有一个文件的目录,我想要只有一个 mp3 的目录 - 无论子目录或其他文件如何。我也不想要空目录或包含多个 mp3 的目录。
我并不反对 Linux 上的 shell 脚本。但是,我不想在任何一个操作系统上编译程序。
我已经尝试过:
find . -type d -exec sh -c 'set -- "$0"/*.mp3; [ $# -le 1 ]' {} \; -print
但这给了我这个输出:
。 ./艺术家B ./艺术家A ./艺术家A/专辑A ./艺术家A/专辑C ./ArtistA/AlbumC/SomeFolder1 ./ArtistC/SomeFolder2 ./ArtistC/SomeFolder3
这很接近,但不完全是我想要的。有两个空文件夹,没有文件名。