我不知道是否在这里被问到了,但这是我的问题。我说的文件dir1
名为:
File 1.mp4
File 2.mp4
etc..
现在在目录上dir2
,我有一个名为:
Sub 1.srt
Sub 2.srt
etc..
我将如何重命名Sub 1.srt
,使其成为File 1.srt
。因此,基本上将所有*.srt
文件重命名为*.mp4
文件名。两个目录中的文件数量相同,并且对使用printf %s\\n *
文件进行了排序。
由于两个目录都包含相同数量的文件,因此以下方法将文件名保存在两个数组中,然后对数组索引列表中的每个索引进行重命名(因为两个数组的长度相同):
mp4paths=(dir1/*.mp4) # save mp4 file names in array
mp4names=("${mp4paths[@]##*/}") # remove leading path components
name=("${mp4names[@]%.*}") # remove extension
srt=(dir2/*.srt) # save srt file names in array
for i in "${!srt[@]}" # for each index in the list of array indices
do # do stuff here...
mv "${srt[$i]}" dir2/"${name[$i]}".srt
done
这应该适用于所有类型的文件名。
对于“空运行”,请替换mv
为printf '%s -> %s\n'
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句