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

Discussion dans 'Windows' créé par Axilatis, 15 Février 2011.

  1. Offline
    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 :p 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:

    Mon fichier possède en réalité 50 séquences, donc numérotées de 00 à 49.
    Pour vous éparger les détails, je dois effectuer une modification sur toutes ces séquences, en réalité inverser leur ordre :
    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 :
    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
    Axilatis, 15 Février 2011
    #1
  2. Offline
    gregsting Elite
    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...
    gregsting, 17 Février 2011
    #2
  3. Offline
    titoum GMZ Crew optc 970.342.646
    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.
    titoum, 13 Mai 2011
    #3