【急】【再求助】如何用awk命令统计fa序列的长度,要去掉换行符
本帖最后由 kamadevin 于 2014-05-15 17:16 编辑如题,如何用awk命令统计fa序列的长度
例:
>gene1
AGCTAGCT
>gene2
AGCTAGCTAGCT
>gene3
AGCTAGCTAGCTAGCT
想要得到的结果是
gene1 8
gene2 12
gene3 16
gene和数字之间要用\t分开
该如何用awk命令实现?
补充,
序列会很长,当序列超过一行时会跳到下一行,中间应该夹了一个换行符
用刚才几位的命令读的时候没有去掉换行符
会读出空名字和序列数
求如何解决! awk -F\> '/>/{s=$2;getline;print s"\t"length}' file
读取NR%2==1的行当做key,NR%2==0的行,存数组里面,
最后len(arry)就能获取长度了,当然key也打印了。
代码从略。 谢谢大神,已解决! 本帖最后由 LikeLx 于 2014-05-15 16:35 编辑
awk '/^>/{getline s;sub(/>/,"");print $0"\t"length(s)}' awk -F">" '{getline s;print $2 "\t" length(s)}' awk '{sub(/>/,"");getline s;print $0"\t"length(s)}' awk '{sub(/>/,"");printf(NR%2==0)?" "length($0)ORS:$0}' 本帖最后由 我是一隻羊 于 2015-03-14 09:41 编辑
awk '/>/{i=substr($1,2);next}{b+=length($0)}END{for(j=0;j++<asorti(b,c);)print c,b]}' inputfile
awk '/gene/{printf $0" ";getline s;print length(s)}' test.txt
页:
[1]
2