生信linux

将基因fa或蛋白fa序列文件由多行转换为一行的awk解决方法

2022-01-16  本文已影响0人  吃吃吃_就知道吃

示例fa文件:


image.png

新建 script.sh,输入以下内容:

awk 'BEGIN{FS=">"}{if(NF==2){print $0}else{printf $0}}' $1  | awk 'BEGIN{FS=">"}NR==1{print $0}NR>1{if(NF==2){print $1;print ">"$2}else{print $0}}'  > all_oneline.fa

或者以下只需一行awk命令(闲来无事突然想出来的骚操作):

awk 'NR==1{a[NR]=$0}NR>1{if(a[NR-1] ~ ">"){print a[NR-1];a[NR]=$0}else if($0 ~ ">"){print a[NR-1];a[NR]=$0}else{printf a[NR-1];a[NR]=$0}}END{print a[NR]}' test.fa  > all_oneline.fa

之后运行,第一个参数为需要转换的多行fa文件,输出文件all_oneline.fa 为转换后的文件,如图

image.png

非常的简单

上一篇 下一篇

猜你喜欢

热点阅读