Linux 中shell脚本输出fasta文件中每一条scaffold碱基的总长度

 

001、

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa               ##  测试fasta文件
>chr1
AACCCTTG
TTCCCCC
>chr2
CCCTTTTT
CCCCCCCC
TTTT
>chr3
TTTTCCCC
GGGG
[root@PC1 test]# awk 'NR > 1 {if($0 ~ />/) {print sum; sum = 0} else {sum += length($0)}} END {print sum}' a.fa      ## 统计每一条scaffold碱基的总长度
15
20
12

 

 

002、增加每一条scaffold的名称

[root@PC1 test]# ls
a.fa
[root@PC1 test]# cat a.fa
>chr1
AACCCTTG
TTCCCCC
>chr2
CCCTTTTT
CCCCCCCC
TTTT
>chr3
TTTTCCCC
GGGG
[root@PC1 test]# awk '{if(NR == 1) {printf($0"\t")} else if($0 ~ />/) {print sum; printf($0"\t"); sum = 0} else {sum += length($0)}} END {print sum}' a.fa
>chr1   15
>chr2   20
>chr3   12

 

posted @ 2023-01-10 22:22  小鲨鱼2018  阅读(83)  评论(0)    收藏  举报