Eu tenho um arquivo como este:
VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA
MKLELLLAFKYLIPKRKRLSSSIVSAFSMGIVALVVWLSVVFMSVIHGLQQRWVGDLASLHSSIRIEPSDKYYESYYYQIDSHAEASQYIYKTIGEKLLCEQTDPYDPDVDFLLPEAFPDPEFSDNGEMIDPVRTANERMLSLFSSRKGSFVEFEEGMGHVHMDRAFRGHKGEPRALSQYIAYSSDILYQQRMLPFEETDYSTEVLNRFNASSEGWLADFLVLQEKFRGMSVILPVVYRDQGYRVGDTASLSVFSVKKEGEVRFPLRVIGFYNPGVSPFGGKTIFIDKELAASIRSESEGLGMHNGWQVFLPSVQDIPVMKQSIQKIFKESEVSSYWEISSLYDYEFFKPILDQLQSDQVLFSIVSFIVLIVACSNIVTMSILLVNNKKKEIGILKAMGVSSSRLQLVFGLCGACSGLVGALLGSILAALTLKNLGILTHWLSKLQGREAFNPSFFGEQLPQDFHLPTVICLSLGALVLAAISGAIPAQHVARMQVSDILKSE
MVILVEAKHISKVIQQQDVCIPILKDVSFQLHAGEVVAITGASGSGKSSLLHLLGTLDQPSSGQILFFGKQVRREELPIFRNCRIGFIFQNFYLLEDDSVINNVLMPAQIARKDTGQKSKARERALALLESVGLVDRRDEKGSLLSGGEKQRVAIARALMNDPEIVLADEPSGNLDHRTADTIHELLLALAEKHRGVLIVTHDRELAEKCHREEILRDGTLMQRQ
LKDTVTPNYHPGMIRRFRPLTQTSTRSGYHKSE
LHVSCLEWLSMITFTRTPLRIAWARAKKNSGLKKIYIKTKILSVAWLIAFKIIFDAALGIKRWIGM
LADPVTTVWKSANIVFLCWRVLPLVRRKTTLEF
LARRRSGSFRGGRRSVFGSLVFSLGSGEHLLGDGY
VGARVRIDANRLSIPSMIVFIANNRRGLWVTIPF
VEEVGSGGLKRSLYFKEEEPCTLITLRSWLEKKET
Quero que cada linha do arquivo seja salva em um arquivo próprio cujo nome seja o número da linha do original ( 1
, 2
, 3
, etc.). Também preciso adicionar uma linha antes de cada sequência, começando com a >
e depois com o número da linha.
Então, 1.txt
seria:
>1
VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV
e 2.txt:
>2
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI
e assim por diante. Como posso fazer isso?
Responder1
Você poderia usar awk
:
awk '{print > NR".txt"}' file
NR
é o número da linha atual em awk
, então o comando acima imprimirá cada linha em um arquivo cujo nome é o número da linha atual mais .txt
.
Se você realmente deseja que as sequências tenham um >
prefixo, use isto:
awk '{print ">"$0 > NR".txt"}' file
E se você quiser o formato FASTA correto (cada sequência precedida por uma linha começando com >
e um nome de sequência), use isto:
awk '{printf ">%s\n%s\n",NR,$0 > NR".txt"}' file
Isso produzirá arquivos como:
$ cat 3.txt
>3
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA