Split file into multiple files

Hi

I have a file that has multiple sequences; the sequence name is the line starting with '>'. It looks like below:
infile.txt:

>HE_ER
tttggtgccttgactcggattgggggacctcccttgggagatcaatcccctgtcctcctgctctttgctc
cgtgaaaaggatccacctatgacctctagtcctcagacccaccagcccaaggaacatctcaccaatttca
>M7B_Ho_sap
tgagaactgcagaactctcggcacagaacaactccatccaaacccctgcactaagagacttgaccaaact
aactagtgtccggctttgtttatctttgaca
>LT_H_ss
gtgagacaaagtaacaaatgtaagaagccatgtctgctcatttctgcttgccaacataatttcacaaagc
ccctgactctgtgatgacatgcagctctcnagaaagatgctttgaagacaaarcaggatrgagcacacag
ccccccayrtctcttgcctgagtcactayattccttaaaagataaatgaccctagtccttgccttttcct
>L_5_Et
ttaaaaacaaagcgggagacttccgcttccgggaagatggagtagacgtacttttccctattcctcccgc
taagtacaactaaaaaccctggacattatatataaaacaaacataagaagactctgaaaggtggagagaa

I need to extract the sequnces in individual files; the sequence name will be the file name. The output files will be like:

HE_ER.fa:

>HE_ER
tttggtgccttgactcggattgggggacctcccttgggagatcaatcccctgtcctcctgctctttgctc
cgtgaaaaggatccacctatgacctctagtcctcagacccaccagcccaaggaacatctcaccaatttca

M7B_Ho_sap.fa:

>M7B_Ho_sap
tgagaactgcagaactctcggcacagaacaactccatccaaacccctgcactaagagacttgaccaaact
aactagtgtccggctttgtttatctttgaca

LT_H_ss.fa:

>LT_H_ss
gtgagacaaagtaacaaatgtaagaagccatgtctgctcatttctgcttgccaacataatttcacaaagc
ccctgactctgtgatgacatgcagctctcnagaaagatgctttgaagacaaarcaggatrgagcacacag
ccccccayrtctcttgcctgagtcactayattccttaaaagataaatgaccctagtccttgccttttcct

L_5_Et.fa:

>L_5_Et
ttaaaaacaaagcgggagacttccgcttccgggaagatggagtagacgtacttttccctattcctcccgc
taagtacaactaaaaaccctggacattatatataaaacaaacataagaagactctgaaaggtggagagaa

I searched for some examples and so far I tried:

awk -v a=">" '{print $0 >> ($1a".fa")}' infile.txt

but it is not working for me. Please help

Joseph

awk ' /^>/ { file=substr($0,2)} { print $0 > file} ' inputfile
2 Likes
awk -F \> ' /^>/ { file=$2 ".fa"} { print $0 > file }' inputfile