IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Remplacer des tirets de liste par des balises


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Par défaut Remplacer des tirets de liste par des balises
    Bonjour,

    Dans un fichier texte, je dois remplacer les lignes commencant par des - par <A></A> mais aussi les englobé dans <B><B>.

    Voici un exemple pour être plus claire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    coucou
     -AAA
     -BB
    toto
     -CCC
         -DDD
    -EE
    doit me donner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    coucou
    <B><A>AAA</A>
    <A>BB</A></B>
    toto
    <B><A>CCC</A>
    <A>DDD</A>
    <A>EE</A></B>
    Pas de soucis, pour les balises <A>...</A>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/-\(.*\).*$/<A>\1<\/A>/'
    mais comment faire pour les englober ensuite par mes balises <B></B> ? le faire avant ? en même temps ? je ne sais pas trop comment m'y prendre ..

    Des idées ?

  2. #2
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    awk te permettra de faire ca, car tu es obligé de garder une sorte contexte pour savoir ou tu en es:

    Voici un début d'algo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CONTEXTE = vide
    SI tiret trouvé
    ALORS
        SI CONTEXTE vide
        ALORS
              ecrire <B>
              ecire <A>ligne sans le tiret</A>
              CONTEXTE je suis dans <B>
        SINON
             ecrire <A>ligne sans le tiret</A>
        FINSI
    SINON
        SI CONTEXTE est dans <B>
        ALORS 
            ecrire </B>
            CONTEXTE = vide
        FINSI
        ecrire ligne
    FINSI
    Tout ca a coder en awk

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Remplacer les <br/> par des sauts à la ligne dans des zones de texte
    Par doncandid dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2010, 17h59
  2. Remplacer les liens dans Formview par des boutons
    Par lemagicien dans le forum ASP.NET
    Réponses: 1
    Dernier message: 29/08/2007, 22h33
  3. Réponses: 3
    Dernier message: 12/09/2006, 12h53
  4. Réponses: 4
    Dernier message: 25/07/2006, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo