Reecrire le nom de fin de ligne en debut de fichier

ewilanenmarchombre Messages postés 3 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Script Bash - Shell ou n'importe quoi si ça aide...

Bonjour,

Voici mon problème

J'ai un fichier (issue d' un logiciel qui ne me permet pas de changer le rendue malheureusement) qui m'affiche mes résultats sous la forme suivantes:

>blablablablabalbablablablablablabalbal [Toto titi]BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB>blablabla numero2 [Titi TATA]AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>blablablablablablablablablablablabla [Toto tutu]CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Bien entendue, le fichier s'étend sur plusieurs centaines de lignes sans aucun saut à la ligne...

Idéalement, j'aimerais arriver au résultat suivant:

>Toto_titi blablablablablablablablablablaablab
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
>Titi_TATA blablablablablablablablablablablabla
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>Toto_tutu blablablablablablablablablablablablablablablablablablablab
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Mais à la limite, je pourrais me contenter du resultat suivant

>Toto titi blablablablablablab BBBBBBBBBBBBBBBBB >Titi TATA blablablblablablablablabla AAAAAAAAAAAAAAAAAAAAAAA >Toto tutu blablablablablablablablab CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Je suis assez débutante en Linux et je suis sur Debian ( si ça change quoi que ce soit...)

J'ai déjà envoyé cette demande une première fois (que j'ai ensuite cloturée ayant eu une réponse que je pensais satisfaisante).

Voici la réponse qu'on m'a envoyé :
sed 's/>/\n/g;s/[[]/\n>/g;s/[]]/\n/g' plop | sed -n '/^$/b;h;n;s/ /_/g;G;s/\n/ /;N;p'

(merci comme mm zipe31)

Toutefois, après l'avoir lancé sur mes vrais jeux de données, cette ligne de commande a deux défauts majeures :
- régulierement je me retrouve avec des lignes de fichiers ressemblant à ça:

_>Toto titi blablablablablablablablablab
BBBBBBBBBBBBBBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCCCCCCCCCC

et des lignes qui ressemblent à ça :

>Toto_titi blablablablabalbalablablablaba
CCCCCCCCCCCCCCC BBBBBBBBBBBBBBBBBBBBB

(c'est à dire que l'ordre des lettres en majuscules est inversée : la ligne 2 est passé ligne 1,... )
L'ordre des lettres en majuscules est de loin la partie la plus importante du fichier et malgré mes nombreuses tentatives, je n'arrive pas à retablir cet état de fait sauf à tout refaire à la main...

Dernier "détail", j'ignore si cela est possible avec sed ou autre, mais il arrive qu'il y ait quelques lignes qui ressemblent à ça :

>blablablablabalablabalab[Toto titi]>blablablablabalablabalab[Tata tutu]>blablablablabalablabalab[Truc much]>blablablablabalablabalab[A laide]
LISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTELISTEDEMAJUSCULEIMPORTANTE

Est-il possible là aussi de les modifier en
>Toto_titi blablablablabalbalablablablaba
CCCCCCCCCCCCCCC BBBBBBBBBBBBBBBBBBBBB

J'espère que quelqu'un pourra m'aider...
Je sais que ma demande n'est pas vraiment facile mais je jure que j'ai essayé pendant un bon moment avant de venir pleurer sur ce site...

Cordialement et Merci d'avance

Ewi

4 réponses

  1. UnGars
     
    Salut,
    Toutefois, après l'avoir lancé sur mes vrais jeux de données, cette ligne de commande a deux défauts majeures
    Le problème il est là !
    La solution qui t'a été donnée correspond à ce que tu as bien voulu donner/dire.

    Maintenant, et c'est certain, ton VRAI fichier contient sûrement des données qui n'ont pas été retranscrites dans ton exemple et/ou des données/caractères qui t'ont échappé, soit par oubli, soit parce qu'ils ne sont pas visibles (caractères non-imprimables par exemple). ;-\

    Donc, m'est d'avis qu'à un moment donné, il nous faut le véritable fichier entre les mains pour ajuster le code comme il faut.

    PS. On dit "quand même" et non pas "comme même" ;-(
    0
    1. UnGars
       
      Pour appuyer ce que je viens de dire, voici un exemple avec le texte que tu as donné et la syntaxe sed :

      $ cat fich 
      >blablablablabalbablablablablablabalbal [Toto titi]BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB>blablabla numero2 [Titi TATA]AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>blablablablablablablablablablablabla [Toto tutu]CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

      $ sed 's/>/\n/g;s/[[]/\n>/g;s/[]]/\n/g' fich | sed -n '/^$/b;h;n;s/ /_/g;G;s/\n/ /;N;p'
      >Toto_titi blablablablabalbablablablablablabalbal
      BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
      >Titi_TATA blablabla numero2
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      >Toto_tutu blablablablablablablablablablablabla
      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC


      C'est bien le résultat attendu, non ?
      Comment veux-tu qu'on invente les problèmes que tu rencontres parfois ???
      0
  2. ewilanenmarchombre Messages postés 3 Statut Membre
     
    Bonjour,

    Je suis désolé, je pensais décrire le problème au mieux. Ce n'est toutefois pas une raison pour s'énerver. Le fichier est assez lourd et je l'ai séparé en Titi, blablab, et CCCC pour des raisons évidentes de simplications. Je me suis dit que la tête réelle du fichier ne m'aiderait pas à avoir de l'aide. Toutefois, à l'évidence, j'avais tort donc voici un petit extrait de mon fichier que j'ai essayé de rendre le plus représentatif possible.
    Explication simple du jeu de données:
    >gi|chiffre nom de la protéine [nom de l'espece ds laquelle elle a été trouvé] >des fois à peut pres la meme chose avec l'espece qui change et un autre numero
    SEQUENCE DE LA PROT

    et donc ce que j'aimerais dans un monde idéal
    >Nom_de_l'espece gi|chiffre nom de la prot - eventuellement 2eme description ou pas c'est comme ça vous arrange
    SEQUENCE DE LA PROT

    et comme je disais: je peux me contenter de :
    >Nom de l'espece gi|chiffre description1
    >Nom de l'espece gi|chiffre deuxieme description inutile
    SEQUENCE DE LA PROT

    Encore merci pour ce qui me liront.
    Je suis désolé pour le "quand/comme " même, ça m'arrive de faire des erreurs... J'imagine qu'à vous aussi de temps en temps...

    Extrait du jeu de données:

    >gi|712912146|ref|YP_009094935.1| cytochrome c oxidase subunit 2 (mitochondrion) [Chlorella variabilis] >gi|699046479|gb|AIU38978.1| cytochrome c oxidase subunit 2 (mitochondrion) [Chlorella variabilis] >gi|760173393|gb|AJP09437.1| cytochrome c oxidase subunit 2 [Chlorella variabilis]
    MNLFLSILILLPIFSLADAPEAWQLGFQDPATPIMQGIIDLHHDIVFFMILIIVFVLWMITRTLYHFHYKKNPIPEKIIH
    GTTIEIAWTIMPSLILVLIAVPSFALLYSLDEVVDPAVTIKAIGHQWYWSYEYSDYSQSDDQSIAFDSYMIPDDDLELGQ
    LRLLEVDNRMVVPANTHLRLIITAADVLHSWAVPSLGAKCDAVPGRLNQIPLFIKREGVFYGQCSELCGANHAFMPIVVE
    AVSLEDYISWVSNKLEEI
    >gi|575395854|gb|AHG59011.1| cytochrome oxidase subunit 2 [Blasia pusilla]
    MNLIWIFPIAFCDAAEPWQLGFQDPATPMMQGIIDLHNDIFFFLIVILIFVLWMLVRALWHFHYKRNPIPERIVHGTTIE
    IIWTIFPSIILMFIAIPSFALLYSMDEVVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRLLE
    VDNRVVVPAKTHLRMIITSADVLHSWAVPSLGVKCDAVPGRLNQTSIFIKREGVYYGQCSELCGTNHAFMPIVVEAVSLD
    DYVSWVSNKLD
    >gi|833207322|gb|AKM22483.1| cytochrome c oxidase subunit 2 [Geranium brycei]
    MIGIVLVIVLALQLIPTISAATPMMQGIIDLHHDIFFFLILISVFVIWILARALWHFHYKRNPIPQRIVHGTTIEILWTI
    FPSIILMFIAIPSFALLYSMDEVVVDPAITIKAIGHQWYWTYEYSDYNSSDEESLTFDSYMISEEDLDLGQLRLLEVDNR
    VVVPANSHLRMIVTSADVLHSWAVPSLGVKCDAVPGRLNQISTFLQREGVYYGQCSEICGTNHAFMPIVVEAVSRKDYAS
    WVSNQFIA
    >gi|320148026|emb|CBJ20691.1| cytochrome c oxidase subunit 2 [Beta vulgaris subsp. maritima]
    MIVREWLFFTMAPCDAAEPWQLGFQDAATPMMQGIIDLHHDIFFFLILILVFVLWILVRALWHFHYKKNPIPQRIVHGTT
    IEIIWTIFPSIILMFIAIPSFALLYSMDEVVVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLR
    LLEVDNRVVVPAKTHIRIIVTSADVLHSWAVPSLGVKCDAVPGRLNQTSILVQREGVYYGQCSEICGTNHAFMPIVVEAV
    SRKDYGSWVSNQ
    >gi|575395874|gb|AHG59021.1| cytochrome oxidase subunit 2 [Sphagnum girgensohnii]
    MILKNIWLFPIAYCDAAEPWQLGFQDAATPMMQGIIDLHHDIFFFSIIILIFVLWMLVRALWHFHYKRNPIPERIVHGTT
    IEIIWTIFPSIILMFIAIPSFALLYSMDEVVDPTITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRL
    LEVDNRVVIPARTHLRMIITSADVLHSWAVPSLGVKCDAVPGRLNQTSIFIKREGVYYGQCSEICGTNHAFMPIVVEAVS
    LDDYVSWVSNKLD
    >gi|14321|emb|CAA37048.1| cytochrome-c oxidase [Triticum aestivum]
    MILRSLSCRFLTIALCDAAEPWQLGFQDAATPMMQGIIDLHHDIXFFLILILVFVLWMLVRALWHFNEQTNPIPQRIVHG
    TTIEIIWTIFPSVILLFIAIPSFALLYSMDGVLVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQ
    LRLLEVDNRVVVPAKTHLRMIVTSADVLHSWAVPSLGVKCDAVPGRLNLTSILVQREGXYYGQCSEICGTNHAFMPIVVE
    AVTLKDYADWVSNQLILQTN
    >gi|939575814|ref|YP_009173824.1| cytochrome c oxidase subunit 2 (mitochondrion) [Populus tremula] >gi|948299267|ref|YP_009178722.1| cytochrome c oxidase subunit 2 (mitochondrion) [Populus tremula x Populus alba] >gi|743900121|ref|XP_011043350.1| PREDICTED: cytochrome c oxidase subunit 2 [Populus euphratica] >gi|936227464|gb|ALH07298.1| cytochrome c oxidase subunit 2 (mitochondrion) [Populus tremula] >gi|938485536|gb|ALJ49755.1| cytochrome c oxidase subunit 2 (mitochondrion) [Populus tremula x Populus alba]
    MMQGIMDLHHDIFFFLILILVFVLWILVGALWHFHYKKNPIPQRIVHGTTIEILWTIFPSLILMFIAIPSFALLYAMDEV
    VVDPAITMKAIGHQWYWTYEYSDYNSSDEESLTFDSYMIPEDDLELGQLRLLEVDNRLVVPANSHLRLLVTSADVLHSWA
    VPSLGVKCDAVPGRLNQISILVQREGVYYGQCSEICGTNHAFMPIVVEALSLKDYCDWVDIHQF
    >gi|813426487|ref|YP_009132646.1| cytochrome c oxidase subunit 2 (mitochondrion) [Aneura pinguis] >gi|798548480|gb|AKA63294.1| cytochrome c oxidase subunit 2 [Aneura pinguis]
    MNLIWIFPIAFCDAAEPWQLGFQDPATPMMQGIIDLHHDIFFFLIVILIFVLWMLVRALWHFHYERNPIPERIVHGTTIE
    IIWTIFPSIIPMFIAIPPFAPLYSMDEVVDPAITIKAIGHQWYRTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRLLE
    VDNRMVVPAKTHLRMIITSADVLHSWAVPSLGVKCDAVPGRSNQTSIFIKREGVYYGQCSELCGTNHAFMPIVVEAVPLD
    DYVSWVSNKLD
    >gi|2689078|gb|AAB88906.1| cytochrome c oxidase subunit II [Brassica rapa subsp. oleifera]
    MIVLKWLFFTISPCDAAEPWQLGFQDAATPIMQGIIDLHHDIFFFLILILVFVLWILVRALWHFHYKENAIPQRIVHGTT
    IEILWTIFPSLILMFIAIPSFALLYSMDEVVVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEEDLELGQLR
    LLEVDNRVVVPAKTHLRIIVTSADVLHSWAVPSLGVKCDAVPGRLNQISILVQREGVYYGQCSEICGTNHAFMPIVVEAV
    SRKDYGSWVSNQLIPQTGEA
    >gi|937423915|ref|YP_009167187.1| cytochrome c oxidase subunit 2 (mitochondrion) [Sanionia uncinata] >gi|901694958|gb|AKR53344.1| cytochrome c oxidase subunit 2 [Sanionia uncinata]
    MSLKNTWLFPIGYCDAAEPWQLGFQDAATPMMQGIIDLHHDIFFFLIIILIFVLWMLVRALWHFHHKRNPIPERIVHGTT
    IEIIWTIFPSIILMFIAIPSFALLYSMDEVVDPTITIKAIGHQRYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRL
    LEVDNRVVVPAKTHLRMIITSADVLHSWAVPSLGVKCDAVPGRLNQTSIFIKREGVYYGQCSELCGTNHAFMPIVVEAVS
    SDDYVSWISNKLD
    >gi|950966483|ref|XP_014499103.1| PREDICTED: cytochrome c oxidase subunit 2, mitochondrial [Vigna radiata var. radiata] >gi|950966488|ref|XP_014499104.1| PREDICTED: cytochrome c oxidase subunit 2, mitochondrial [Vigna radiata var. radiata]
    MGLLSHVRSTFVGKCSKGNFGMSRFLQSNDFQRKLILSSGKEYEHFSKRSYSSPSMTPGTESTTAITKFKMPNIGSEGFA
    FSSFLSTVNRNSSMINFSSCFKTPVKPEQVAANPVINKMTTGMERIPRALRWMCGGFPAISFCDAPEPWQLGFQDAATPI
    MQGIMDLHHDIFFFLVQIAVFVLWVLSRALWCFRSKISPIPQRIVHGTTIEILWTIFPSIILMFIAIPSFTLLYSMDDVV
    VDPAITIKAIGHQWYWSYEYSDYNNSDEQSLAFDSYMVPEDDLELGQLRLLEVDNRVVVPAKTHLRVLITSADVLHSWAV
    PSLGVKCDAVPGRLNQISTFIQREGVYYGQCSEICGTNHAFMPIVVEAVSTKDYGSWVSNQIQ
    >gi|546144002|ref|YP_008593382.1| cytochrome c oxidase subunit II (mitochondrion) [Trichogaster lalius] >gi|542132255|dbj|BAN83311.1| cytochrome c oxidase subunit II [Trichogaster lalius]
    MAHPTQLGFQDAASPVMEELLNFHDHALMIVFLISVLVLYIIVAMVATKLTNKNILDSQEIEIIWTVLPAIILISIALPS
    LRILYLMDEINDPHLTIKAVGHQWYWSYEYTDYENLEFDSYMVPTQDLTPGQFRLLETDHRMVIPFNSPVRVMITAEDVL
    HSWAVPSMGIKLDAVPGRLNQTAFIASRPGVFYGQCSEICGANHSFMPIVVEAVPLEHFENWSYLMIKDA
    >gi|589144445|ref|YP_009003733.1| cytochrome c oxidase subunit II (mitochondrion) [Mustelus griseus] >gi|576597714|gb|AHH29978.1| cytochrome c oxidase subunit II [Mustelus griseus]
    MAHPSQLGFQDAASPVMEELIHFHDHTLMIVFLISTLVLYIITATVTTKLTNKYILDSQEIEIVWTILPAIILIMIALPS
    LRILYLMDEINDPHLTIKAMGHQWYWSYEYSDYEDLGFDSYMIQTQDLTPGQFRLLETDHRMVVPMESPIRVLVSAEDVL
    HSWAVPALGVKMDAVPGRLNQTAFIISRPGVYYGQCSEICGANHSFMPIVVEAVPLEHFEAWSSSMLEEA
    >gi|39979812|gb|AAR32837.1| cytochrome oxidase subunit II [Basileuterus fulvicauda]
    MANHSQLNFQDASSPIMEELMGFHDHALMVALAICSLVLYLLTHTLTEKLTSSTVNAQVIELVWTILPAMVLVTLALPSL
    RILYMMDEINNPDLTLKAIGHQWYWTYEYTDFKDLTFDSYMIPTTDLPLGHFRLLEVDHRVIVPMNSTIRVIVTADDVLH
    SWAVPSLGVKTDAIPGRLNQTSFLASRPGIFYGQCSEICGANHSFMPIVVESTPLADFENWSSLVPS
    >gi|343170110|gb|AEL97481.1| cytochrome c oxidase subunit 2 [Zanobatus schoenleinii]
    MAHPSQLGFQDAASPVMEELLHFHDHTLMIVFLISSLVLYIIVATVSTKLTNKHILDSQEIEIVWTIVPAIILIMIALPS
    LRILYLMDEINDPHVTVKALGHQWYWSYEYTDYQDLEFDSYMIQTNDLTPGQFRLLETDHRMVVPMQSPIRMLITAEDVL
    HSWAVPTLGIKMDAVPGRLNQTAFIISRPGVYYGQCSEICGANHSFMPIVVEAVPLEHFENWSSLMLEDL
    >gi|378554495|gb|AFC17521.1| cytochrome c oxidase subunit II [Salmo salar]
    MAHPSQLGFQDAASPVMEELLHFHDHALMIVLLISTLVLYIIVAMVSTKLTNKYILDSQEIEIIWTVLPAVILILIALPS
    LRILYLMDEINDPHLTIKAMGHQWYWSYEYTDYEDLGFDSYMVPTQDLTPGQFRLLETDHRMVVPVESPIRVLVSAEDVL
    HSWAVPSLGVKMDAVPGRLNQTAFIASRPGVFYGQCSEICGANHSFMPIVVEAVPLEHFEKWSTMMLEDA
    >gi|161137530|gb|ABX57820.1| cytochrome c oxidase subunit II [Pythium myriotylum]
    MEGIINFHHDLMFFLIIVTVFVCWMLFRVITLFDEKKNPIPATFVHGATIEIIWTTIPALILLTVAVPSFALLYSMDEII
    DPIITLKVIGSQWYWSYEYSDNLEFADEPLIFDSYMVQENDLTIGEFRLLEVDNRVVVPTNSHIRVLITASDVLHSWAIP
    SLGVKLDACPGRLNQTSMYIKREGVFYGQCSEICGINHGFMPIVVEAVSLEDYLVWLKNKVNF
    >gi|312165765|gb|ADQ38875.1| cytochrome oxidase subunit 2 [Phytophthora trifolii] >gi|348018182|gb|AEP42843.1| cytochrome oxidase subunit II [Phytophthora trifolii]
    MEGIINFHHDLMFFLIMITVFVCWMLFRVITLFDEKKNKIPATVVHGATIEIIWTSIPALILLTVAVPSFALLYSMDEVI
    DPIITLKVIGSQWYWSYEYSDNLEFSDEPLIFDSYMVQEDDLTIGQFRVLEVDNRVVVPTNSHIRVLITASDVLHSWAIP
    SLGIKLDACPGRLNQTSMFIKREGVFYGQCSEICGVNHGFMPIVVEAVSLEDYLTWLKNKINFDFNV
    0
    1. ewilanenmarchombre Messages postés 3 Statut Membre
       
      P.S.: Je suis désolé d'embêter tout le monde, mais je n'arrive vraiment pas à obtenir quelque chose de valable par moi même...
      0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec les 10 premières lignes, quelque chose comme ça?
    $ awk  '/^>/ {p=split($0, a, ">"); for(x=1; x<=p; x++){t=split(a[x], b, "[|]|[[]"); if(t)print "[" b[t], b[2]}; next} 1' fichier
    [Chlorella variabilis] 712912146
    [Chlorella variabilis] 699046479
    [Chlorella variabilis] 760173393
    MNLFLSILILLPIFSLADAPEAWQLGFQDPATPIMQGIIDLHHDIVFFMILIIVFVLWMITRTLYHFHYKKNPIPEKIIH
    GTTIEIAWTIMPSLILVLIAVPSFALLYSLDEVVDPAVTIKAIGHQWYWSYEYSDYSQSDDQSIAFDSYMIPDDDLELGQ
    LRLLEVDNRMVVPANTHLRLIITAADVLHSWAVPSLGAKCDAVPGRLNQIPLFIKREGVFYGQCSELCGANHAFMPIVVE
    AVSLEDYISWVSNKLEEI
    [Blasia pusilla] 575395854
    MNLIWIFPIAFCDAAEPWQLGFQDPATPMMQGIIDLHNDIFFFLIVILIFVLWMLVRALWHFHYKRNPIPERIVHGTTIE
    IIWTIFPSIILMFIAIPSFALLYSMDEVVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRLLE
    VDNRVVVPAKTHLRMIITSADVLHSWAVPSLGVKCDAVPGRLNQTSIFIKREGVYYGQCSELCGTNHAFMPIVVEAVSLD
    DYVSWVSNKLD
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    affiné
    $ awk -F ">" '/^>/ {for (n=1; n<=NF;n++)if($n){t=split($n, a, "[|]|[[]|[]]"); gsub(" ", "_", a[t-1]); print FS a[t-1] "|" a[2]} next} 1' fichier
    >Chlorella_variabilis|712912146
    >Chlorella_variabilis|699046479
    >Chlorella_variabilis|760173393
    MNLFLSILILLPIFSLADAPEAWQLGFQDPATPIMQGIIDLHHDIVFFMILIIVFVLWMITRTLYHFHYKKNPIPEKIIH
    GTTIEIAWTIMPSLILVLIAVPSFALLYSLDEVVDPAVTIKAIGHQWYWSYEYSDYSQSDDQSIAFDSYMIPDDDLELGQ
    LRLLEVDNRMVVPANTHLRLIITAADVLHSWAVPSLGAKCDAVPGRLNQIPLFIKREGVFYGQCSELCGANHAFMPIVVE
    AVSLEDYISWVSNKLEEI
    >Blasia_pusilla|575395854
    MNLIWIFPIAFCDAAEPWQLGFQDPATPMMQGIIDLHNDIFFFLIVILIFVLWMLVRALWHFHYKRNPIPERIVHGTTIE
    IIWTIFPSIILMFIAIPSFALLYSMDEVVDPAITIKAIGHQWYWTYEYSDYNSSDEQSLTFDSYMIPEDDLELGQLRLLE
    VDNRVVVPAKTHLRMIITSADVLHSWAVPSLGVKCDAVPGRLNQTSIFIKREGVYYGQCSELCGTNHAFMPIVVEAVSLD
    DYVSWVSNKLD
    0