0

我已经搜索了 StackOverflow 和互联网的其他部分,到目前为止,我没有发现任何可以帮助解决我的问题的东西。

我的问题是,在 iTunes 中,我有大约 220 首歌曲被列为“艺术家名称 - 歌曲名称”(例如“Modest Mouse - Dramamine”),我想知道是否有任何方法可以编写一个 Ruby 脚本将它们更改为在 iTunes 中正确列出,连字符(“Dramamine”)之后的单词成为歌曲标题,连字符之前的单词(“Modest Mouse”)成为艺术家。

另外,如果有任何程序可以实现相同的目标,如果有人可以共享链接,将不胜感激,但是,如果有人可以指出我可以学习如何在 Ruby 中进行大规模扫描和更改文件名的地方,然后放那些歌曲变成iTunes可以读取和显示的歌曲,那也将不胜感激。谢谢!

4

1 回答 1

0

查看RegexFile Ruby 库以及Dir。他们为您提供工作所需的工具。

例如,

Dir["path/to/your/music/*.m4a"].each do |filename|
  m = File.basename(filename).match(/(.+)-(.+)/)
  artist = m[1].strip # remove leading and trailing blanks
  song = m[2].strip
  new_filename = song + ' - ' + artist
  File.rename(filename, "path/to/your/music/#{new_filename}.m4a"
|end|

还有其他技巧,例如,您可以使用反引号(`,而不是 ')通过将块中的最后一行替换为:

`mv #{filename} path/to/your/music/#{new_filename}.m4a`

这将在 Unix shell 中运行 mv 命令。

祝你好运!没有什么比通过反复试验学习更好的了!

于 2012-08-14T03:18:08.097 回答