如何使用for循环重命名多个fastq文件

如何使用for循环重命名多个fastq文件

我有几个这样的文件:

sub_TK273759_R1.fastq
sub_TK273759_R2.fastq
sub_TK273763_R1.fastq
sub_TK273763_R2.fastq
sub_TK273766_R1.fastq
sub_TK273766_R1.fastq

如何重命名所有文件,如下所示:

TK273759_R1.fastq
TK273759_R2.fastq
TK273763_R1.fastq
TK273763_R2.fastq
TK273766_R1.fastq
TK273766_R2.fastq

答案1

有两个版本rename。根据您拥有的版本,其中一个适合您:

rename sub_ '' sub_*        # rename -V -> "rename from util-linux 2.33.1"
rename 's/^sub_//' sub_*    # rename -V -> "Unknown option: V"

如果目标文件名已经存在,这两个将反对。

或者,您可以使用循环,但效率要低得多:

for f in sub_*
do
    mv "$f" "${f#sub_}"
done

如果目标文件名已经存在,这将默默地覆盖它

相关内容