重命名具有连续编号的文件,并保留原始文件名

时间:2018-11-04 21:15:40

标签: bash file rename

我有一堆带有随机名称和数字的mp3文件,例如:

  • 01_fileabc.mp3
  • 01.filecdc.mp3
  • fileabc.mp3
  • 929-audio.mp3

出于排序目的,我需要在文件名之前添加一个序列号,例如:

  • 001_01_fileabc.mp3
  • 002_01.filecdc.mp3
  • 003_fileabc.mp3
  • 004_929-audio.mp3

我检查了发现的here解决方案。第一种解决方案可以工作,但替换文件名而不是添加文件名。

num=0; for i in *; do mv "$i" "$(printf '%04d' $num).${i#*.}"; ((num++)); done

如何修改此命令以添加到文件名呢? 很抱歉,但是无论我如何尝试,我自己都无法在此处找到解决方案。

3 个答案:

答案 0 :(得分:2)

只需将In [14]: TfidfVectorizer(binary=True).fit_transform(data).todense() Out[14]: matrix([[ 0.35355339, 0. , 0. , 0.35355339, 0.35355339, 0. , 0. , 0.35355339, 0.35355339, 0. , 0.35355339, 0.35355339, 0.35355339, 0. , 0. ], [ 0. , 0.37796447, 0.37796447, 0. , 0. , 0.37796447, 0.37796447, 0. , 0. , 0.37796447, 0. , 0. , 0. , 0.37796447, 0.37796447]]) (即文件的原始名称)替换${i#*.}(代表“从左侧从$ i到第一个点的删除),即文件的原始名称(我可能会使用{ {1}},$i或至少$filename,而不是$oldfile作为变量名)。

您也可以将$f之前的$i替换为.,否则文件将被命名

_

答案 1 :(得分:1)

更新:正如RobC对此答案的评论,由于将ls命令与bash数组一起使用,现有的空格或换行符可能会导致列表文件出现问题。因此,上述代码可以通过这种方式进行改进

#!/bin/bash
i=0
for file in *.mp3; do
    i=$((i+1))
    mv "$file" "$(printf "%03d_%s" "$i" "$file")"
done

原始答案::您可以在bash脚本中尝试使用此代码。记住要使其可执行 $ chmod +x script.sh

#!/bin/bash
contents_dir=($(ls *.mp3))
for file in ${!contents_dir[*]}; do
    new=$(awk -v i="$file" -v cd="${contents_dir[$file]}" 'BEGIN {printf("%03d_%s", i+1, cd)}')
mv ${contents_dir[$file]} $new
done

它将向您在执行脚本的目录中找到的所有mp3文件中添加您想要的连续的0导树数字。

答案 2 :(得分:0)

您可以尝试...

$ ls -l
total 4
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 01.filecdc.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 01_fileabc.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 929-audio.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 fileabc.mp3

$ t=0
$ for i in *mp3
> do
>     # Use the seq command to get a formatted zero filled string.
>     prefix=$(seq -f "%04g" $t $t)
>
>     # Move $i to new file name.
>     mv $i ${prefix}_${i}
>
>     # Increment our counter, t.
>     t=$(expr $t + 1)
> done


$ ls -l
total 4
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 0000_01.filecdc.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 0001_01_fileabc.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 0002_929-audio.mp3
-rw-r--r-- 1 plankton None 5 Nov  4 13:35 0003_fileabc.mp3