如何同时重命名多个文件扩展名?

How to rename multiple file extensions at the same time?

我已经提到了这个 post and post

我的文件名如下所示(1 组包含 3 个相关文件)。在我的目录中,我有 40 组文件(即 120 个文件)。 40套全部有3个同扩展名的文件

设置 1

Test_t5.version9.info.gz
Test_t5.version9.dose.vcf.gz.tbi
Test_t5.version9.dose.vcf.gz

设置 2

Test_t5.version12.info.gz
Test_t5.version12.dose.vcf.gz.tbi
Test_t5.version12.dose.vcf.gz

只有文件中的版本号在不同的集合中发生变化。

现在,我想重命名我的文件,如下所示

设置 1

Test_t5.version9.info.gz
Test_t5.version9.dose.vcf.gz.tbi
Test_t5.version9.dose.vcf.bgz            #see the change here from `.gz to .bgz`

设置 2

Test_t5.version12.info.gz
Test_t5.version12.dose.vcf.gz.tbi
Test_t5.version12.dose.vcf.bgz            #see the change here from `.gz to .bgz`

我尝试了下面的方法,但我猜我在执行 shell 中的命令时出错了。

 rename 's/dose.vcf.gz/dose.vcf.bgz/' Test_t5.version*.dose.vcf.gz

基本上每个集合只修改一个文件的文件扩展名。您不必担心 Set 1Set 2。那是为了让您了解我们的数据是如何分组的。

你能帮忙吗?

看起来你只是想做:

for file in *.vcf.gz; do mv "$file" "${file%.gz}.bgz"; done