使用 MV 脚本重命名大量文件

使用 MV 脚本重命名大量文件

我正在编写一个 bash 脚本来重命名大量文件,使用 mv。原始文件名

文件001.txt

新文件名

文件-新-001.doc

我可以更改后缀,但我不知道如何插入“-new-”部分。

感谢您的帮助

答案1

如果使用mv不是必需的,请使用重命名:

rename 's/File(.*)\.txt/file-new-$1.doc/' *

这将重命名当前目录中的所有文件。如果子目录中有文件,请使用find

find -type f -exec rename 's/File(.*)\.txt/file-new-$1.doc/' {} +

如果mv需要的话,你可以这样做:

for i in *; do
    j=$(echo $i | sed -r 's/File(.*)\.txt/file-new-\1.doc/')
    mv $i $j
done

答案2

我能够使用 mv 修复它,方法是使用以下循环:

#!/bin/bash
for file in *.txt;
do
mv "$file" "${file%.txt}.doc"
done    

for file in file*.doc    
do    
mv -i "${file}" "${file/e/e-new-}"   
done

相关内容