Partage
  • Partager sur Facebook
  • Partager sur Twitter

script sed, insertion à la fin d'une ligne.

sans sauter de ligne

Sujet résolu
    12 janvier 2021 à 14:41:28

    Bonjour,

    j'apprends le BASH avec un livre. Il s'agit aujourd'hui de la commande sed.

    J'ai un fichier foo.txt

    thierry@toto-PC:~> cat foo.txt
    The quick brown fox jimped over the laxy dog.

    Après un script sed, je dois obtenir ceci:

    Objectif exercice

    Voilà mon script sed:

    # sed script: HTML Markup hinzufügen um einen Satz
    
    1 i<html>\
    \t<head>\
    \t\t<title>Mispelled HTML file<\/title>\
    \t<\/head>\
    \t<body>\
    \t\t<p>
    s/^/\t\t\t/
    a\
    \t\t<\/p>\
    \t<\/body>\
    <\/html>
    

    Et voilà le résultat:

    thierry@toto-PC:~> sed -f html_MARKUP.sed foo.txt
    <html>
            <head>
                    <title>Mispelled HTML file</title>
            </head>
            <body>
                    <p>
                            The quick brown fox jimped over the laxy dog.
                    </p>
            </body>
    </html>
    

    C'est pas si mal :)



    QUESTION:

    J'aimerais que "The quick brown fox jimped over the lazy dog." soit aligné avec les balises <p> et </p>.

    J'aimerais aussi, si possible, que la méthode utilisée évite de chercher "The" ou <p>

    Comment faire ?



    Pourquoi ? Car si la phrase du fichier foo.txt est différente, alors le script ne marche plus…

    Mais si ce n'est pas possible, votre aide, votre solution est tout de même intéressante !

    Merci pour votre aide :)

    -
    Edité par DenebeDenebe 12 janvier 2021 à 14:44:43

    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2021 à 15:03:11

      salut,

      il faudrait ne pas mettre les balises de début et de fin paragraphe dans l'insertion et dans l'ajout,
      mais les mettre dans la substitution : s/.*/<p>&<\/p>

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        12 janvier 2021 à 15:42:38

        Merci dantonq. :)

        oui, je m'en suis entre temps rendu compte (en bidoullant). J'arrive à ceci, il me manque un petit quelque chose:

        Script:

        # sed script: HTML Markup hinzufügen um einen Satz
          
        1 i<html>\
        \t<head>\
        \t\t<title>Mispelled HTML file<\/title>\
        \t<\/head>\
        \t<body>
        $ s/^/\t\t<p>/;s/$/<\/p>/;
        $ a\t<\/body>\
        <\/html>
        

        Résultat:

        thierry@toto-PC:~> sed -f html_MARKUP.sed foo.txt
        <html>
                <head>
                        <title>Mispelled HTML file</title>
                </head>
                <body>
                        <p>The quick brown fox jimped over the laxy dog.</p>
        t</body>
        </html>
        



        Je regarde ton indication… (je répondrai plus tard très probablement, je dois bientôt y aller…)


        -
        Edité par DenebeDenebe 12 janvier 2021 à 15:44:24

        • Partager sur Facebook
        • Partager sur Twitter
          12 janvier 2021 à 16:10:19

          a\
          \t<\/body>
          ...
          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            12 janvier 2021 à 17:49:02

            Ça marche.

            Tu es un :magicien:, merci.

            À moi maintenant de jouer un peu avec les commandes, pour mieux saisir le fonctionnement.

            PS: j'ai bien vu l'Ampersand &, vachement utile.

            -
            Edité par DenebeDenebe 12 janvier 2021 à 17:51:09

            • Partager sur Facebook
            • Partager sur Twitter
              12 janvier 2021 à 18:06:40

              Tu es un :magicien:

              merci, mais non.

              la magie, c'est ça : serpent

              et j'en suis très loin. :)

              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

              script sed, insertion à la fin d'une ligne.

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown