Reecrire le nom de fin de ligne en debut de fichier

Fermé
ewilanenmarchombre Messages postés 3 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 8 mars 2016 - 8 mars 2016 à 13:46
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 9 mars 2016 à 11:11
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
A voir également:

4 réponses

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
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
ewilanenmarchombre Messages postés 3 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 18:43
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
ewilanenmarchombre Messages postés 3 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 8 mars 2016
8 mars 2016 à 18:47
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 9/03/2016 à 10:31
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 mars 2016 à 11:11
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