改成 。对于目录中的所有文件

时间:2010-05-21 20:15:30

标签: bash rename

我需要重命名目录中的所有文件。源文件名的一些示例是:

alpha--sometext.381928
comp--moretext.7294058

结果文件将重命名为:

alpha.sometext.381928
comp.moretext.7294058

- 之前和之后的字符数一致。

该脚本需要处理Ubuntu和FreeBSD的当前安装。这些是瘦LAMP服务器,因此只安装了必要的软件包。

由于

2 个答案:

答案 0 :(得分:4)

通过bash:

for file in *--*; do
    mv "${file}" "${file/--/.}"
done

魔法位于${file/--/.},这是${file}的值,除非每个“ - ”更改为“。”

答案 1 :(得分:4)

作为纯shell的替代方法,您可以使用rename,这是Perl附带的标准实用程序。对于简单的案例,它更方便。

rename 's/--/./' *