我正在编写一个 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