使用 AWK 线性化 FASTA 序列
逐行阅读
awk '/^>/ {printf("%s%s\t",(N>0?"\n":""),$0);N++;next;} {printf("%s",$0);} END {printf("\n");}' < input.fa
可以将此 awk 脚本读作:
- 如果当前行(
$0
)像 fasta 标题(^>
)那样开始。然后我们打印一个回车符,如果这不是第一个序列。(N>0?"\n":"")
跟随线本身($0
),接着是制表(\t
)。我们寻找下一行(next;
) - 如果当前行(
$0
)没有像 fasta 标头那样启动,则这是默认的 awk 模式。我们只是打印整行,没有回车。 - 最后(
END
)我们只打印最后一个序列的回车符。