【发布时间】:2021-06-24 03:48:01
【问题描述】:
解释:
这是我正在进行的一项研究的一部分。我不允许更改 mp3 文件的文件名,我必须以某种方式从脚本中执行此操作,并使其尽可能短。脚本本身是一个菜单,用户可以选择一个章节,然后选择章节的一部分,从那里他们可以听我的语言文本,他们的语言音译,然后是他们的语言/字母的句子。
我必须通过创建一个在 bash 中制作菜单的脚本来简化问题。一切都很好,我已经自动化了很多。所以这部分已经完成,我不需要为下面的问题回答问题,因为这基本上可以正常工作。
而且它必须是 bash 脚本,而不是 python 或其他任何东西。
另外,英语不是我的母语,所以请与我同在!
情况:
所以我遇到了一种情况,我需要在菜单脚本中添加播放音频文件的功能。我不知道如何比举例说明更好。
除了一件事之外,基本上一切都很好。
我有一系列 mp3 文件,范围从 001001.mp3 到 114006.mp3
他们使用他们的命名约定将前三个数字作为章节,后三个作为章节的一部分。对我来说这很奇怪,因为我会创建一个不同的结构而现在不能,因为这些文件已经被使用了。
现在我可以通过输入生成这些数字来自动获取前三个的数字(读取 -p ":" 章节号)。但是第二个进入脚本更乏味,因为我从 1 数到最多需要 300,但没有前导零、0 或 00。而且我不能简单地使用 read -p 来实现这一点,因为它会自动基于我给它的数字的输入。
文件名示例:
001001.mp3 # chapter 001 part 001
001015.mp3 # chapter 001 part 015
067012.mp3 # chapter 067 part 012
277103.mp3 # chapter 277 part 103
下面是我用来打印 bash 菜单选择的脚本
我要求立即忘记数字的前三位,这已经被覆盖了!!
i=1
while [ $i -le 300 ]
do
echo " printf \"$i) : Chapter $chapter Part $i\n\""
((i++))
done
所以这基本上会导致
1) Chapter 001 part 1
2) Chapter 001 part 2
3) Chapter 001 part 3
4) Chapter 001 part 4
5) Chapter 001 part 5
6) Chapter 001 part 6
7) Chapters part 7
...
43) Chapters part 43
44) Chapters part 44
45) Chapters part 45
...
100) Chapters part 100
201) Chapters part 201
etc
考虑到文件名的限制,我不确定如何编辑该脚本 sn-p 以便我可以将 001、002 等作为该名称的最后三位数字,因此强制它使用三位数字一两位前导零:
001
002
003
...
014
015
...
057
...
103
284
etc
我希望任何人都可以帮助我并理解我的愿望,也许可以帮助我更好地提出这个问题。 :)
【问题讨论】:
-
@Storin 对,如果这是你想要的,那么我会删除我的答案,因为它已经是重复的了..
-
@socowi 我从我的问题开始就说明了那部分。没必要对它粗鲁。