macos中安装rename工具,可以批量重命名文件

最近,使用Gis软件打开文件要处理时,出错,

解决问题需要将长文件名中的.删除或者替换成其他字符。

由于文件比较多,需要批处理完成比较合适。

下载安装

mac没有rename批处理命令,需要先下载安装rename

1
brew install rename

此程序会依据命令行指定的修改规则来重命名文件。 如果命令行没指定文件,那么需要从标准输入上提供文件列表。

例子

替换文件扩展:

下面是将*.png文件的扩展名*。png替换为.jpg.png

1
rename -s .png .jpg.png *.png

使用正则表达式替换

将文件名中hello替换为world

1
rename 's/hello/world/' *.txt

修改批量的png文件的前缀由’ic_‘改为’ic_setting_’ :

1
rename 's/ic_/ic_setting_/' *.png

删除扩展名

1
2
  rename -x *.bak
  rename 's/\.bak\z//' *

如果确定文件中除了扩展名其他地方不包括bak这个字符串,也可以这样操作

rename -s .bak '' *

也可以在一个命令中,进行多个操作

rename -s .tgz .tar.gz -s .tbz2 .tar.bz2 .t?z

不过 进行多个操作需要注意操作顺序,下面命令大概不会如你所愿完成任务

rename -s foo bar -s bar baz *

由于规则是累计的、这个命令首先将foo替换为bar,在中间结果的文件中, 命令用baz替换bar. 所以在多数情形下,最后结果是使用baz替换了foo——这可能不符合您的愿景。所以,要注意规则顺序。

If you are unsure that your modification rules will do the right thing, try doing a verbose dry run to check what its results would be. A dry run is requested by passing -n:

不进行实际操作 仅仅演示运行的结果 使用 * -n * 开关 rename -n -s bar baz -s foo bar *

rename更多说明请见

rename