Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de variable sur SED

    27 juillet 2015 à 16:51:52

    Bonjour à tous,

    J'ai un petit soucis lors de l'ajout d'une variable.

    >>

    sed -i.old " /${tabLastValue[$j]}/a \'$Mapping'\ "  ${tabSC[$i]}

    Sed me rajoute des quotes à ma variable (ex: 'TEST').
    Si je retire les quotes, il ne reconnait pas la variable (ex: '$Mapping'), j'ai également essayé avec "'$Mapping'" mais ça ne marche pas non plus :'(.

    Je voudrais aussi ajouté cette variable uniquement sur la dernière occurence.

    Ex: je voudrais changer uniquement le dernier "AAAA".
    AAA
    BBB
    CCC
    AAA 

    Merci pour votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      27 juillet 2015 à 18:23:08

      salut,

      sed -i.old " /${tabLastValue[$j]}/a \'$Mapping'\ "  ${tabSC[$i]}

      ceci ne constitue pas un changement, mais un ajout.
      il faut savoir ce que tu veux faire, précisément !

      du tac au tac :

      pour modifier la dernière occurrence d'un motif dans un fichier, je te suggère de retourner le fichier avec tac donc, et alors tu modifieras la première occurrence ;)
      puis de remettre le fichier dans le bon sens.

      • Partager sur Facebook
      • Partager sur Twitter

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

        28 juillet 2015 à 11:45:56

        Oui c'est exactement ça, je veux ajouter une variable après la dernière occurrence trouvée.
        Donc après le dernier "AAAA"

        AAA
        BBB
        CCC
        AAA
        nouvelle valeur

        Le problème c'est qu'après l'ajout, la nouvelle valeur se retrouve entre quote ('nouvelle valeur').

        Merci pour tac je ne connaissais pas :).

        • Partager sur Facebook
        • Partager sur Twitter
          28 juillet 2015 à 16:26:26

          $ var="nouvelle valeur"
          $ echo "AAA1                          
          BBB
          CCC
          AAA2" > fic
          $ tac fic | sed '0,/AAA/i'"$var" | tac
          AAA1
          BBB
          CCC
          AAA2
          nouvelle valeur
          • Partager sur Facebook
          • Partager sur Twitter

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

          Problème de variable sur SED

          × 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