Mettre plusieurs mots dans une variable

Résolu
Bonjour,

Je voudrais comment mettre le mot en gras dans une variable et le réutiliser

<p name="enbName">DADA HHHH 18 FDD</p>


3 réponses

  1. Bonsoir ,

    pour plus de détails j'ai un fichier File1 avec le contenu ci-dessous

    File1
    <p name="enbName">DADA HHHH 18 FDD</p>


    File2 avec le contenu ci-dessous

    BBBB KKKK 18 FDD


    je veux obtenir le fichier File3 ci-dessous la valeur en gras du file1 sera remplacé par la valeur du File2

    File3
    <p name="enbName">BBBB KKKK 18 FDD</p>
    1. Contributeur
      Salut,

      Pas très claire ta demande ;-\

      Voila une solution, mais sans garantie vu qu'on ne connaît pas le contexte :

      $ var=$(echo '<p name="enbName">DADA HHHH 18 FDD</p>' | grep -Po '>\K[^<]*')

      $ echo "${var}"
      DADA HHHH 18 FDD


      1. Bonsoir Zipe31

        en fait je dois récupérer les mots DADA HHHH 18 FDD en variable pour l'utiliser dans une commande sed -i

        sed -i 's/DADA HHHH 18 FDD/BBBB KKKK 18 FDD/g'


        dans la phrase ci-dessous

        <p name="enbName">DADA HHHH 18 FDD</p>
      2. Contributeur
        @GHISLINO
        $ echo '<p name="enbName">DADA HHHH 18 FDD</p>' | sed 's#\([^>]*>\)[^<]*#\1BBBB KKKK 18 FDD#'
        <p name="enbName">BBBB KKKK 18 FDD</p>
      3. Merci Zipe

        est t'il possible de faire passer les mots à changer en variable

        Merci
        exemple

        sed 's#\([^>]*>\)[^<]*#\1$Var2#'
      4. Contributeur
        @GHISLINO
        $ var="BBBB KKKK 18 FDD"

        $ echo '<p name="enbName">DADA HHHH 18 FDD</p>' | sed 's#\([^>]*>\)[^<]*#\1'"${var}"'#'
        <p name="enbName">BBBB KKKK 18 FDD</p>

        ou
        $ echo '<p name="enbName">DADA HHHH 18 FDD</p>' | sed "s#\([^>]*>\)[^<]*#\1${var}#"
        <p name="enbName">BBBB KKKK 18 FDD</p>
      5. Du génie !