從一個文件(input.fasta)提取第10至20個序列存到另一個文件(output.fasta)
awk -v RS='>' 'NR>1{i++}i>=10&&i<=20{print ">"$0}' input.fasta | sed '/^$/d' > output.fasta
將某一文件(input.fasta)中每一條序列保存到一個文件中
# 輸出文件名是1.fasta, 2.fasta, 3.fasta...
awk '/^>/{f=++d".fasta"} {print > f}' input.fasta
# 輸出文件名是序列ID
awk '/^>/ {fout=sprintf("%s.fasta",substr($0,2));}{print >> fout;}' input.fasta
根據(jù)IDs(id.txt)從fasta文件(input.fasta)中提取序列
awk -F'>' 'NR==FNR{ids[$0]; next} NF>1{f=($2 in ids)} f' id.txt seq.fasta