用正则表达式重命名文件

时间:2020-06-29 13:27:23

标签: regex linux bash sed

我在目录中有几个文件,例如:

BUSCO_Canis_lupus_BUSCO_v3_451441870_exon_probs.pbl
BUSCO_Canis_lupus_BUSCO_v3_45144182_metapars.cgp.cfg
BUSCO_Canis_lupus_BUSCO_v3_451441E0_weightmatrix.txt
BUSCO_Canis_lupus_BUSCO_v3_451441D0_parameters.cfg

,我想通过删除开头的BUSCO_部分和中间的_BUSCO_v3_Number_部分来重命名这些文件:

Canis_lupus_exon_probs.pbl
Canis_lupus_metapars.cgp.cfg
Canis_lupus_weightmatrix.txt
Canis_lupus_parameters.cfg

我知道如何使用sed和mv,但不知道如何结合使用。

1 个答案:

答案 0 :(得分:1)

使用perl rename

rename -n 's/(?:^BUSCO_|_BUSCO_v3_\d+)//g' *BUSCO*

在输出看起来不错时删除-n开关