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.txt
wä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
NR
ist 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