как сохранить одну строку как один файл с именами номеров счетчиков

как сохранить одну строку как один файл с именами номеров счетчиков

У меня есть такой файл:

VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA
MKLELLLAFKYLIPKRKRLSSSIVSAFSMGIVALVVWLSVVFMSVIHGLQQRWVGDLASLHSSIRIEPSDKYYESYYYQIDSHAEASQYIYKTIGEKLLCEQTDPYDPDVDFLLPEAFPDPEFSDNGEMIDPVRTANERMLSLFSSRKGSFVEFEEGMGHVHMDRAFRGHKGEPRALSQYIAYSSDILYQQRMLPFEETDYSTEVLNRFNASSEGWLADFLVLQEKFRGMSVILPVVYRDQGYRVGDTASLSVFSVKKEGEVRFPLRVIGFYNPGVSPFGGKTIFIDKELAASIRSESEGLGMHNGWQVFLPSVQDIPVMKQSIQKIFKESEVSSYWEISSLYDYEFFKPILDQLQSDQVLFSIVSFIVLIVACSNIVTMSILLVNNKKKEIGILKAMGVSSSRLQLVFGLCGACSGLVGALLGSILAALTLKNLGILTHWLSKLQGREAFNPSFFGEQLPQDFHLPTVICLSLGALVLAAISGAIPAQHVARMQVSDILKSE
MVILVEAKHISKVIQQQDVCIPILKDVSFQLHAGEVVAITGASGSGKSSLLHLLGTLDQPSSGQILFFGKQVRREELPIFRNCRIGFIFQNFYLLEDDSVINNVLMPAQIARKDTGQKSKARERALALLESVGLVDRRDEKGSLLSGGEKQRVAIARALMNDPEIVLADEPSGNLDHRTADTIHELLLALAEKHRGVLIVTHDRELAEKCHREEILRDGTLMQRQ
LKDTVTPNYHPGMIRRFRPLTQTSTRSGYHKSE
LHVSCLEWLSMITFTRTPLRIAWARAKKNSGLKKIYIKTKILSVAWLIAFKIIFDAALGIKRWIGM
LADPVTTVWKSANIVFLCWRVLPLVRRKTTLEF
LARRRSGSFRGGRRSVFGSLVFSLGSGEHLLGDGY
VGARVRIDANRLSIPSMIVFIANNRRGLWVTIPF
VEEVGSGGLKRSLYFKEEEPCTLITLRSWLEKKET

Я хочу, чтобы каждая строка файла сохранялась в отдельном файле, имя которого — номер строки оригинала ( 1, 2, 3, и т. д.). Мне также нужно добавить строку перед каждой последовательностью, начинающейся с a, >а затем номер строки.

Итак, 1.txtбудет:

>1
VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV

и 2.txt:

>2
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI

и т. д. Как это сделать?

решение1

Вы можете использовать awk:

awk '{print > NR".txt"}' file

NR— это номер текущей строки в awk, поэтому команда выше выведет каждую строку в файл, имя которого равно номеру текущей строки плюс .txt.

Если вы действительно хотите, чтобы последовательности имели >префикс, используйте это:

awk '{print ">"$0 > NR".txt"}' file

А если вам нужен правильный формат FASTA (каждой последовательности предшествует строка, начинающаяся с , >и имя последовательности), используйте это:

awk '{printf ">%s\n%s\n",NR,$0 > NR".txt"}' file

Это создаст такие файлы:

$ cat 3.txt 
>3
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA

Связанный контент