使用正则表达式重命名文件?

时间:2013-07-09 18:14:14

标签: regex linux bash

我需要将* -dev.example.com.cfg重命名为* -prod.example.com.cfg

例如,如果文件名是db-dev.example.com.cfg,我需要将其重命名为db-prod.example.com.cfg

有200多个文件,有没有办法通过命令行来实现?

3 个答案:

答案 0 :(得分:1)

您可以使用parameter substitution在纯粹的bash中执行此操作。

for file in *-dev.example.com.cfg; do
  mv "$file" "${file/%-dev.example.com.cfg/-prod.example.com.cfg}"
done

答案 1 :(得分:0)

这不是必需的正则表达式,所以既然你在Linux上,你可以使用util-linux中的rename。在Debian和Ubuntu等派生词上,该命令被称为rename.ul

rename dev.example.com.cfg prod.example.com.cfg *.cfg

答案 2 :(得分:0)

zsh有zmv,如果经常http://zshwiki.org/home/builtin/functions/zmv

这样做,这可能会很方便