如何根据是否正确的语句重命名多个文件名?

时间:2019-05-16 22:51:35

标签: git-bash

我需要遍历文件以使用git bash一次更改其名称。 我的文件只是按这样的顺序命名。

  • (1).mp3
  • (2).mp3
  • (3).mp3
  • (4).mp3
  • (5).mp3
  • (6).mp3
  • ...最多(300).mp3

我需要创建一个程序来根据条件重命名文件,以将其划分为此类章节。

  • 1_chapter-1.mp3
  • 2_chapter-1.mp3
  • 3_chapter-1.mp3
  • 4_chapter-1.mp3
  • 5_chapter-1.mp3
  • 6_chapter-1.mp3
  • 第二章,第三章,第四章,第五章等...

因此,我制作了一个if语句,以便将其包含在循环语句中,但是,我的if语句自身存在错误。

  

例如asume f =“(9).mp3”

 if [ ${f//[!0-9]/} <= 10]; then
     echo "rename to " + ${f//[!0-9]/} "_chapter-1"
 elif [ ${f//[!0-9]/} <= 20] && [ ${f//[!0-9]/} > 10 ]; then
     echo "rename to " + ${f//[!0-9]/} "_chapter-2"
 elif [ ${f//[!0-9]/} <= 30] && [ ${f//[!0-9]/} > 20 ]; then
     echo "rename to " + ${f//[!0-9]/} "_chapter-3"
 .... etc
 else
     echo "do nothing"
 fi
bash: [: missing `]'
do nothing

我希望这能充分揭示我的追求。
现在,我不知道为什么它总是给出与代码所示相同的结果“什么也不做”。

如何正确地执行相同的目标,以从1到10(索引+第1章),从11到20(索引+第2章),从12到30(索引+第3章)命名文件,以及如上面的重命名列表所示。

注意: 各章不相等,因此第1章可能有10个mp3,而第11章例如有12个或50个mp3。

0 个答案:

没有答案