我有一个目录,其中包含以下格式的几百个文件:
file.txt.1
file.txt.2
file.txt.3
file.txt.4
...
我需要将这些全部重命名为这种格式:
file1.txt
file2.txt
file3.txt
file4.txt
...
使用 mmv
,安装 sudo apt-get install mmv
。
$ mmv -n '*.*.*' '#1.#3.#2'
file.txt.1 -> file.1.txt
file.txt.2 -> file.2.txt
file.txt.3 -> file.3.txt
或者使用 find
和 shell (POSIX sh/bash/Korn/zsh) 参数替换扩展。
find . -type f -execdir sh -c 'num=${1##*.}; echo mv -v "$1" "file.${num}.txt" ' _ {} ;
- 删除
echo
以对文件执行实际重命名。
不确定这是否是执行您要求的最佳方法,但它会按照您需要的方式重命名所有文件。只需将其保存到文件(例如rename.sh
),然后授予其执行权限(chmod +x rename.sh
)并使用./rename.sh
运行
#!/bin/bash
for filename in file*; do
newFile=`echo $(basename $filename) | awk -F'.' '{print $1 $3 "." $2}'`
echo mv "$filename" "$(dirname $filename)/$newFile";
done | /bin/bash
如果要运行试运行,请将| /bin/bash
替换为 > renames.txt
。这会将所有重命名的文件保存到文本文件中,您可以在其中查看更改。