[Help] sed et les expressions régulières

Axilatis

Elite
Hello :)

Tout d'abord n'ayez pas peur à la vue de mon sujet c'est bien plus simple qu'il n'y parait ^^ J'explique mon but de manière précise afin que vous puissiez m'aider de manière plus efficace :)

Je souhaiterai ajouter un certain nombre à un nombre existant dans un fichier.
Je m'explique.

Je travaille sur base d'un fichier texte contenant des séquences d'adn.
Chaque séquence se voit attribuer un numéro (format "FASTA" si ça vous intéresse).

Voici un exemple type de fichier fasta contenant de l'ADN:

>01
ADN (séquence d'ADN)
>02
ADN'
>03
ADN''
etc...
Mon fichier possède en réalité 50 séquences, donc numérotées de 00 à 49.
>00
ADN
>...
ADN''''
>49
ADN'''''''''
Pour vous éparger les détails, je dois effectuer une modification sur toutes ces séquences, en réalité inverser leur ordre :
ATCG
deviendrait
GCTA
Je dispose et maitrise les outils pour faire cette opération.

Voici mon problème :
Je dois AJOUTER au fichier de base (séquences 00 à 49, ordre initial "ATCG") ce meme fichier mais dont les séquences ont été inversées (je sais le faire no soucy) mais j'ai besoin que le numérotation continue.
Ainsi :
>00
ATCG
>01
AATC

...

deviendraient :
>50
GCTA
>51
CTAA

...
Comment puis-je faire ?
Les tutos sont légion sur internet, mais cela devient très vite compliqué et nous apprenons sed "sur le tas" (et sans mentir j'en ai un peu ras le bol des tutos :-9).

Pour résumer, comment ajouter un nombre (dans ce cas-ci "50") à un nombre existant (dans ce cas-ci de "00" à "49") afin d'automatiser la tache ?

En espérant ne pas avoir abusé avec mon poste, merci beaucoup à ceux qui tenteront de m'aider :)

Axilatis
 

gregsting

Chat!
Je pense pas que tu puisse faire de math avec sed mais bêtement avec bash...

#!/bin/bash
a=0
b=50
c=$( a+b )


Avec ça je vois pas très bien ce que tu as besoin de plus, vu ce que tu sais faire... le coup du zéro devant le 1,2,3... risque d'être un peu chiant par contre...
 

titoum

OPTC:970342646
allez pcq c'est vendredi

#!/bin/ksh
##init my number
#
Number=50
##looping to concat old file with new file
for prefAdn in $(cat MonNouveauFichier)
do
echo $Number $prefAdn >> MonBeauFichier.$$
Number=$Number+1
done

cp MonBeauFichier.$$ MonBeauFichier.data
echo done



a savoir que MonNouveauFichier = celui ki a la nouvelle seq et MonBeauFichier c'est le 00 a 49.
 
Haut