So speichern Sie eine Zeile als eine Datei mit Zählernummernnamen

So speichern Sie eine Zeile als eine Datei mit Zählernummernnamen

Ich habe eine Datei wie diese:

VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA
MKLELLLAFKYLIPKRKRLSSSIVSAFSMGIVALVVWLSVVFMSVIHGLQQRWVGDLASLHSSIRIEPSDKYYESYYYQIDSHAEASQYIYKTIGEKLLCEQTDPYDPDVDFLLPEAFPDPEFSDNGEMIDPVRTANERMLSLFSSRKGSFVEFEEGMGHVHMDRAFRGHKGEPRALSQYIAYSSDILYQQRMLPFEETDYSTEVLNRFNASSEGWLADFLVLQEKFRGMSVILPVVYRDQGYRVGDTASLSVFSVKKEGEVRFPLRVIGFYNPGVSPFGGKTIFIDKELAASIRSESEGLGMHNGWQVFLPSVQDIPVMKQSIQKIFKESEVSSYWEISSLYDYEFFKPILDQLQSDQVLFSIVSFIVLIVACSNIVTMSILLVNNKKKEIGILKAMGVSSSRLQLVFGLCGACSGLVGALLGSILAALTLKNLGILTHWLSKLQGREAFNPSFFGEQLPQDFHLPTVICLSLGALVLAAISGAIPAQHVARMQVSDILKSE
MVILVEAKHISKVIQQQDVCIPILKDVSFQLHAGEVVAITGASGSGKSSLLHLLGTLDQPSSGQILFFGKQVRREELPIFRNCRIGFIFQNFYLLEDDSVINNVLMPAQIARKDTGQKSKARERALALLESVGLVDRRDEKGSLLSGGEKQRVAIARALMNDPEIVLADEPSGNLDHRTADTIHELLLALAEKHRGVLIVTHDRELAEKCHREEILRDGTLMQRQ
LKDTVTPNYHPGMIRRFRPLTQTSTRSGYHKSE
LHVSCLEWLSMITFTRTPLRIAWARAKKNSGLKKIYIKTKILSVAWLIAFKIIFDAALGIKRWIGM
LADPVTTVWKSANIVFLCWRVLPLVRRKTTLEF
LARRRSGSFRGGRRSVFGSLVFSLGSGEHLLGDGY
VGARVRIDANRLSIPSMIVFIANNRRGLWVTIPF
VEEVGSGGLKRSLYFKEEEPCTLITLRSWLEKKET

Ich möchte, dass jede Zeile der Datei in einer eigenen Datei gespeichert wird, deren Name die Zeilennummer des Originals ist ( 1, 2, 3, usw.). Außerdem muss vor jeder Sequenz eine Zeile hinzugefügt werden, die mit einem beginnt >und dann die Zeilennummer angibt.

Also, 1.txtwäre:

>1
VLLKHCGRMRRFLIRNLRSFLSHISLNTLKSQESKV

und 2.txt:

>2
LLSSQAKMYFSLRENFYLEGGIETTFVPSGEVYSRSFLKGISRI

usw. Wie kann ich das machen?

Antwort1

Du könntest benutzen awk:

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

NRist die aktuelle Zeilennummer in awk, daher druckt der obige Befehl jede Zeile in eine Datei, deren Name die aktuelle Zeilennummer plus ist .txt.

Wenn Sie den Sequenzen unbedingt ein vorangestellt haben möchten >, verwenden Sie Folgendes:

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

Und wenn Sie das richtige FASTA-Format wünschen (jeder Sequenz geht eine Zeile voraus, die mit beginnt, >und ein Sequenzname), verwenden Sie Folgendes:

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

Dadurch werden Dateien wie die folgenden erstellt:

$ cat 3.txt 
>3
LNPNALPTSPISENWVMVRPIVAQISLRRMTPSAIGAQTEMA

verwandte Informationen