我有一個這樣的文件:
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