在Unix中批量重命名文件

在Unix中批量重命名文件

你好,我的目录中有以下文件:

ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat

我需要重命名如下:

ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat

你能告诉我一个可以做到这一点的一行代码吗?

答案1

rename 可用于批量重命名文件

以你的例子来说:

$ rename -v 's/^ewPrd/ewPpt/' *ActiveStores*
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver renamed as ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores_cache.ver
ewPrd030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat renamed as ewPpt030MmCommonEaiClcBroker034_RSS.ActiveStores.Count_cache.dat

答案2

如果您要重命名多个文件,请执行以下操作:

for f in *Prd*;do mv "$f" "${f/Prd/Ppt}"; done

这将遍历Prd当前目录中名称包含的所有文件并重命名它们。它利用了 bash 的优势(我假设您正在使用 bash)字符串替换能力。

相关内容