使用 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
)我們只列印最後一個序列的回車符。