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