2013-03-21 3 views
-1

Я пытаюсь извлечь последовательности из файла FASTA с помощью awk.AWK: Напишите строки в несколько файлов

например. файл выглядит так и содержит 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 
+0

-1 google it немного, вы найдете материал. –

+0

Спасибо за редактирование формата. Поверьте мне, я целый день пытался найти различные решения для bash oneliner. Любой указатель был бы оценен! –

+2

Не тратьте слишком много времени на поиск решений oneliner. Если вы можете быстро решить проблему с помощью 10 строк, сделайте это. – pynexj

ответ

3

Вам нужно будет закрыть файлы, когда вы закончите. Попытка:

awk '/>/ {close(OUT); OUT=substr($0,2) ".fasta"}; OUT {print > OUT}' file.fasta 
Смежные вопросы