Am un fișier .fasta (text) care conține date despre secvența ADN în formatul următor:
>uce-8374_Genus_specie
ACGTACGTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTACGATCCGGTATATCGGCGATTCGATCG
>uce-239_Genus_specie
ATCGTAGCATGCGCTAGCTAGCTAGCTCGCGGTACGCATGTCTGACTGCGTCTGGTCGTACGATTACTACGACTGCG
>uce-83_Genus_specie
ATCGATCTAGCGTAGCATGGCATCGATATCTGCGATCGACTCGATGCATGCATGCATCGATGCTAGCTAGCTAGCTA
>uce-902_Genus_specie
AGCTGACTAGCTGGCGATACTGGCGATATCGGATTACGCGGCATATCGAGCGAGTCGATCGATGCATCTGATGCAGC
Încerc să atașez totul înainte de primul subliniere, precedată de a |
doar la capătul rândurilor au >
. Deci, de exemplu, prima secvență ar citi:
uce-8374_Genul_specii|uce-8374
, urmată de secvența ADN de sub ea. Există vreo modalitate de a face acest lucru în sed? Am încercat să păstrez ^[^_]+(?=_)
într-o variabilă, dar nu a funcționat și a continuat să se adauge ^[^_]+(?=_)
până la capătul liniei în locul modelului în sine. Orice ajutor, precum și explicații (deoarece sunt nou în regex) ar fi de ajutor. Dacă există o modalitate mai bună de a face acest lucru, sunt deschis la alte opțiuni!
Până acum, am încercat (voi arăta doar prima secvență de ADN, dar vreau să le schimb pe toate):
sed -E 's/species/species|^[^_]+(?=_)/' sample_file.fasta
Rezultat: uce-8374_Genus_species|^[^_]+(?=_)
si am incercat si eu:
x="^[^_]+(?=_)"
sed -E "s/specie/specie|$x/" "fișier_eșantion.fasta"
Rezultat: uce-8374_Genus_species|^[^_]+(?=_)