AWK:将行写入多个文件

时间:2013-03-21 17:48:39

标签: regex awk substring fasta

我正在尝试使用awk从FASTA文件中提取序列。

e.g。该文件看起来像这样,它包含703个序列。我想将每个文件提取为单独的文件。

>sequence_1
AACTTGGCCTT
>sequence_2
AACTTGGCCTT
.
.
.

我正在使用这个awk脚本:

awk '/>/ {OUT=substr($0,2) ".fasta"}; OUT {print >OUT}'file.fasta

...虽然有效,但仅限于16,然后我收到错误说

.fasta makes too many open files
input record number 35, file file.fasta
source line number 1

1 个答案:

答案 0 :(得分:3)

完成后您需要关闭文件。尝试:

awk '/>/ {close(OUT); OUT=substr($0,2) ".fasta"}; OUT {print > OUT}' file.fasta