示例fa文件:

image.png
第一種方法:
新建 script.sh,輸入以下內(nèi)容:
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命令(閑來(lái)無(wú)事突然想出來(lái)的騷操作):
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
之后運(yùn)行,第一個(gè)參數(shù)為需要轉(zhuǎn)換的多行fa文件,輸出文件all_oneline.fa 為轉(zhuǎn)換后的文件,如圖

image.png
第三種方法:
使用getline函數(shù):
示例文件:

image.png
awk 'NR==1{print $0}NR>1{if($0 ~ ">"){print"";print $0}else{tmp=$0;getline;if($0 ~ ">"){print tmp;print $0}else{printf tmp""$0}}}' test.fa
輸出文件:

image.png
非常的簡(jiǎn)單