9

我有许多以“.1”结尾的文件,例如:

example.file.ex1.1
example.file.ex2.1
example.file.ex3.1

有没有一种方法可以让我快速重命名它们而不用末尾的“.1”(例如 example.file.ex1、example.file.ex2 等)?

谢谢!

4

3 回答 3

13

是的,用rename试试这个:

rename -n 's/\.1$//' *

如果您的测试有效,请移除-n(试运行模式开关)。

警告 还有其他同名的工具可能会也可能不会这样做,所以要小心。


如果您运行以下命令 ( linux)

$ file $(readlink -f $(type -p rename))

你有一个像

.../rename: Perl script, ASCII text executable

那么这似乎是正确的工具=)

如果不是,则使其成为默认值(通常已经如此)Debian和衍生,例如Ubuntu

$ sudo update-alternatives --set rename /path/to/rename

最后但同样重要的是,这个工具最初是由 Perl 的父亲 Larry Wall 编写的。

于 2013-08-25T22:23:04.757 回答
5

纯 bash 解决方案:

for curFile in example.file.*.1; do
    mv -- "$curFile" "${curFile:0:-2}"
done
于 2013-08-25T22:22:58.027 回答
3

另一个使用参数扩展的解决方案:

for curFile in example.file.*.1; do
    mv "$curFile" "${curFile%.1}"
done
于 2013-08-25T22:37:37.677 回答