Bash重命名音乐曲目


1

我有一个包含大约80首音乐曲目的文件夹。

我想将它们从“艺术家 - 标题”重命名为“01.艺术家 - 标题”,一直到80年代。

我无法弄清楚如何做到这一点,所以有人可以帮忙吗?


我会在for循环中输入文件,将文件名放在变量old_name中,然后将新文件命名为i +“old_name”,然后删除原始文件。使用i ++,i的值发生变化。
Ben Plont

i ++在bash中工作吗?我认为它引发了一个错误
user365967

对不起,不,它是i = i + 1。 @Hotpil在他的回答中写了这个剧本。
Ben Plont

您想以什么顺序分配号码?艺术家和标题按字母顺序排列?
janos

Answers:


1

其他几个人已经指出,在bash中严格执行此操作可能不是您想要的,因为它可能会混淆您自己管理库的任何音乐程序。

无论如何,这里是你如何在bash中做到这一点:

i=0
for f in *; do
  mv "$f" $(printf '%02d. %s' $i "$f")
  i=$((i+1))
done

双引号 $f 是至关重要的,因为文件名肯定包含空格。


0

我不知道你是否仍然需要它,但无论如何:

#!/bin/bash

i=1
for file in *
do
  mv "$file" "$i.$file"
  i=$((i+1))
done

这不会按照OP的请求对文件进行零填充,因此不能很好地排序。
slhck

-2

更新 :

您需要的是一个软件,可以为您重新命名音乐文件或标签(在文件中)。

我建议使用一个特定的工具来处理大量音乐文件,这是一个名为Mp3Tag的免费工具。 它做你所要求的甚至更多。

http://www.mp3tag.de/en/

该软件不仅可以根据每个文件中编码的mp3标签重命名或替换文件名的任何部分,还可以逐步重命名文件,可以自定义数字(01,02等)或字母顺序(AA)的工作方式,AB等...)作为前缀或后缀。

通过使用文件名来更改标签,它也可以反过来工作

最后它可以上线并填写标签,如果有些遗失或您想自动更换它们。

如果它回答了你的问题,请告诉我。 祝你有个好的一天。


您能否对链接内容进行更详细的描述,并解释它与问题的关系?这有助于确保在链接页面脱机时此答案仍然有用。此外,请小心在这种性质的答案中发布链接 - 他们可以被社区视为垃圾邮件,正确或其他方式。见 帮助中心 欲获得更多信息。
bwDraco

谢谢你的建议,我会尽力让我的答案更好。
zethib

1
考虑到它的bash,我怀疑OP需要一个基于linux的工具
Journeyman Geek

同样的想法适用于linux,因为有像这样的linux版本的工具。但我发现,提供可能很好的答案并不足以在现场,这是我的第一印象,并将成为我的最后一次。
zethib
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.