Create a “Recently Added Albums” m3u playlist
我正在尝试创建一个播放列表,这个播放列表与你在iTunes中经常看到的"最近添加的专辑"播放列表想法相同,但使用的是$num_days_before参数。
我使用了这篇文章中的大多数想法:如何递归地查找和列出一个目录中最新修改的文件,其中包含子目录和时间?
我创建了一个脚本,可以使用以下参数运行:
1 | create_m3u /dir_root/with/mp3s 60 |
其中$1是mp3的根目录(其中包含文件夹,也包含mp3)其中$2是从今天开始向后创建M3U播放列表文件的天数。
脚本的主要部分是以下命令:
1 2 3 4 | find $1 -type f -iregex '.*\.mp3' -mtime -$2 -exec stat --format '%Y %y %n' {} \; | \ sort -n | \ cut -d' ' -f5- | \ sed -e 's/^/\./' |
现在我的问题是,上面的命令包括
1 | cut d' ' -f5- |
部分给出了这种类型的输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | .... ./RATKING - So It Goes - 2014 [V0]/09. Protein.mp3 ./RATKING - So It Goes - 2014 [V0]/08. Puerto Rican Judo.mp3 ./RATKING - So It Goes - 2014 [V0]/02. Canal.mp3 ./RATKING - So It Goes - 2014 [V0]/05. Remove Ya.mp3 ./RATKING - So It Goes - 2014 [V0]/04. So Sick Stories.mp3 ./RATKING - So It Goes - 2014 [V0]/06. Eat.mp3 ./RATKING - So It Goes - 2014 [V0]/03. Snow Beach.mp3 ./RATKING - So It Goes - 2014 [V0]/07. So It Goes.mp3 ./RATKING - So It Goes - 2014 [V0]/01. _.mp3 ./RATKING - So It Goes - 2014 [V0]/10. Bug Fights.mp3 ./RATKING - So It Goes - 2014 [V0]/11. Take.mp3 ./Aesop Rock - The Blob (2014) [MP3 320]/01 The Blob.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/06 - Requiem.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/08 - Riot In My Brain!!.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/10 - Can't Let It Go.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/03 - Battling Voices From Beyond.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/02 - Meepy Morp.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/07 - Meepy Morp (Reprise).mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/09 - 7 SKIES H3 (Main Theme).mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/05 - Metamorphosis.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/04 - In A Dream.mp3 ./The Flaming Lips - 7 Skies H3 (2014) [V0]/01 - 7 SKIES H3 (Can't Shut Off My Head).mp3 ./G. Love & Special Sauce - 2014 - Sugar/14 - Bad Girl Baby Blues.mp3 ./G. Love & Special Sauce - 2014 - Sugar/06 - Sugar.mp3 ./G. Love & Special Sauce - 2014 - Sugar/10 - Windshield Wipers.mp3 ./G. Love & Special Sauce - 2014 - Sugar/02 - Nite Life.mp3 ./G. Love & Special Sauce - 2014 - Sugar/09 - One Night Romance.mp3 ./G. Love & Special Sauce - 2014 - Sugar/03 - Good Life.mp3 ./G. Love & Special Sauce - 2014 - Sugar/04 - Nothing Else Quite Like Home.mp3 ./G. Love & Special Sauce - 2014 - Sugar/05 - Smokin Blues.mp3 ./G. Love & Special Sauce - 2014 - Sugar/08 - Saturday Night.mp3 ./G. Love & Special Sauce - 2014 - Sugar/13 - Run For Me.mp3 ./G. Love & Special Sauce - 2014 - Sugar/07 - Weekend Dance #2.mp3 ./G. Love & Special Sauce - 2014 - Sugar/12 - Too Much Month.mp3 ./G. Love & Special Sauce - 2014 - Sugar/01 - Come Up Man.mp3 ./G. Love & Special Sauce - 2014 - Sugar/11 - Cheating Heart.mp3 |
这就是我想要它(部分)的方式,当专辑被添加到文件系统/pc时按日期排序。但是我另外想要的是让每个专辑按歌曲编号01、02、03、04排序…从每个文件夹/相册中,而不是上面看到的无序数字。
有没有人对我如何才能以不同的方式做到这一点有什么建议,这样我就能得到想要的结果?
您最初的命令有一些冗余——您链接的问题需要输出中的日期,而您没有,因此您可以跳过
1 2 3 4 5 | find $1 -type f -iregex '.*\.mp3' -mtime -$2 --printf"%T@~.%h~%f " |\ sort -t~ -nk1 -nk3 |\ cut -d~ -f2- |\ tr '~' '/' |
1 2 3 | [modified date in seconds since Unix epoch]~.[file directory]~[filename] ex: 1234512345~./RATKING - So It Goes - 2014 [V0]~09. Protein.mp3 |
然后,我们首先按日期排序,然后按文件名排序(都是数字排序,并使用
注意:只有您的文件在文件名的开头都有磁道号,并且对于文件路径(目录或文件名)中任何位置的