我想使用第一行的一些信息重命名一些基因组FASTA文件,但我无法弄清楚 .
这是一个例子,两个文件:
GCA_000007365.1_ASM736v1_genomic.fna
:
>AE013218.1 Buchnera aphidicola str. Sg (Schizaphis graminum), complete genome
ATGTCAAAGTCGTATTTAAAAAATTTTGATGTTATTGTTATTGGTGGAGGGCATGCTGGCACTGAAGCTGCAGCAGCCTC
TGCAAGAGTAGGTTGTAAAACATTATTATTAACTCAAAAAATAACTGATATAGGTGTATTATCTTGCAATCCTGCTATCG
GCA_000012065.2_ASM1206v2_genomic.fna
:
>CP000048.1 Borrelia hermsii DAH, complete genome
TACCACTACACTTATTAATAATACATACTCACGCCTGGGGGGAAAAATTCAATAATGGAAACCTTACAAATATAAAACCA
CTACAAATAGGTATTATTCAGCATAATTATATAAATTTAACTCCTTATAATCAACATTATAAATATTACGCTTTCATTGG
我想用FASTA文件中第一行的信息重命名一千个 *.fna
文件,给出:
Buchnera_aphidicola_AE013218.1.fna
Borrelia_hermsii_CP000048.1.fna
FASTA Headers 保持不变 . 只是文件名 .
1 回答
你可以循环遍历所有
.fna
文件,提取单词,用awk重新排列它们并将它们放入mv
命令中,如下所示:在
mv
命令之前添加echo
以查看其输出结果--
是为了确保以连字符开头的文件名不被解释为mv
.1的选项 .以下是命令替换中的awk命令更清晰:
printf
的格式化字符串重新排列前三个单词;substr
从第一个单词中删除前导>
.exit
阻止正在处理的文件的其余部分;它不会改变结果,但会降低速度 .1更便携将是
mv "./$fname" "./$( ... )"
;据我所知,--
是一个GNU主义 .