Forum Programmation.perl code perl remplacement automatique dans un fichier texte

Posté par  .
Étiquettes : aucune
0
23
août
2005
Je voudrais réaliser à l'aide d'un script perl les actions suivantes:

1)renommer une chaine de caractères (en fait intercaller :
- dans un fichier texte, rechercher une séquence générique seq1
- regarder si la longueur de la sequence qui suit (mot suivant) est supérieure à 1
- si oui, alors intercaller un "_" entre chaque lettre
- le répéter jusqu'à la fin du fichier pour chaque paragraphe

2) modifier une valeur dans un fichier:
rechercher toutes les lignes commençant par une sequence seq2 et remplacer le deuxième nombre qui la suit par une valeur j que l'on incrémentera de 1 à chaque fois.

QQ1 peut me donner le code correspondant svp?

merci d'avance!
  • # ...

    Posté par  (site web personnel) . Évalué à 7.

    QQ1 peut me donner le code correspondant svp?
    et la marmotte ?
  • # Bien sur...

    Posté par  . Évalué à 7.

    mais d'abord une enigme (parce que t'es pas encore invite alors il faut bien que ce soit plus difficile pour toi):
    quelle est la place accordee a "Je voudrais réaliser" dans "QQ1 peut me donner le code" ?
    un indice pour jouer chez vous: foutage de gueule
    • [^] # Re: Bien sur...

      Posté par  . Évalué à -3.

      ... je ne pensais pas rencontrer ce genre de "subtilités"... Qd je dis "réaliser", c'est le résultat auquel je souhaite parvenir, ça parait évident... merci en tout cas pour cette aide précieuse...
      • [^] # Re: Bien sur...

        Posté par  . Évalué à 5.

        je t'en prie, mais quand on vient au supermarche generalement on paye a la caisse...

        Tout ca pour dire que nous ne sommes pas la pour te donner du code: le corriger, l'ameliorer peut etre, mais surement pas te macher le travail.

        Si tu veux embaucher quelqu'un pour faire un job, il y a lolix et tout plein de gentils programmeurs au chomage qui se feront un plaisir de te repondre
        • [^] # Re: Bien sur...

          Posté par  . Évalué à -3.

          Je ne te comprends pas bien, si ton temps est si précieux pourquoi donc le gaspilles-tu à formuler ce genre de réponses?
          Je demande juste un coup de main (et pas à toi spécifiquement) parce-que je ne suis pas famillier de perl, je pensais que ce serait l'endroit indiqué c'est tout.
          Rien ne t'oblige à vouloir m'aider, mais rien ne t'oblige non plus à être désagréable.
          Les gens qui ne veulent pas répondre ne répondent pas, ils ne crachent pas on ne sait quelle frustration au premier venu.
          Pour ça il y a des forums d'assistantes sociales au chomage qui pourront t'aider gratuitement à les dépasser.
          • [^] # Re: Bien sur...

            Posté par  (site web personnel) . Évalué à 4.

            Les gens qui ne veulent pas répondre ne répondent pas, ils ne crachent pas on ne sait quelle frustration au premier venu.

            Il a déjà été plus gentil que moi je trouve.

            Pour te répondre, et j'espère que Pierre sera d'accord :), sache que s'il t'as répondu c'est déjà une preuve de respect. Il ne t'ignore pas, il te dit juste que si tu espères une réponse, beaucoup de gens sont disposés à t'aider (lui, moi, d'autres), à la condition que tu y mettes du tiens.

            En l'occurence ici, tu n'y a pas mis du tient. Tu nous a déballé tes objectifs, un peu comme une liste de devoir, puis tu as sobrement demandé : "qui veut faire ca à ma place ?"

            Bref, je ne trouve pas qu'il a "gaspillé son temps" a te répondre, c'est pour ton bien, et si tu arrives a comprendre ca alors c'est gagné. Autrement tant pis, on attendra le prochain :)

            Ah et heureusement, une majorité a compris le concept des forums et nous n'avons donc pas à "cracher sur le 1er venu nos frustations" très souvent :)

            Pour ça il y a des forums d'assistantes sociales au chomage qui pourront t'aider gratuitement à les dépasser.
            no comment.


            P.S : et là ? j'ai gaspillé de mon temps moi aussi ?
  • # Essayons d'être cool

    Posté par  . Évalué à 0.

    1.

    mac@gulliver:/tmp$ cat test.pl
    #!/usr/bin/perl -w

    use strict;
    my $line;

    while ( $line = <> )
    {
    if ( $line =~ /seq1(\d+)\D/ )
    {
    $line =~ s/([a-z])(?=[a-z])/$1_/gi if $1 > 1;
    }
    print "$line";
    }

    mac@gulliver:/tmp$ echo "bouseq112aa" | ./test.pl
    b_o_u_s_e_q112a_a

    Je te laisse le 2 à titre d'exercice :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.