Effectuer un backpace avec sed

Résolu
Bonjour,

je souhaite faire un script qui remplace un mot "{back}" dans un fichier texte par un backspace, c'est a dire qui efface le charactere avant le mot "{back}", jimagine qu il faut utiliser sed mais je vois pas comment

merci :)

4 réponses

  1. Contributeur
    Salut,

    $ echo -e "bonjour" | sed 's/.$/^?/'
    bonjou

    Le "^?" s'obtient par la combinaison de touches "CTRL-V + Backspace".

    ;-))
    1. Contributeur
      ta commande donne :
      echo -e "bonjour" | sed 's/.$/^?/'
      bonjou^?

      As-tu bien généré la séquence "^?" par la combinaison de touches "CTRL-V + Backspace" et non en tapant directement ^? sur ton clavier ???

      Sinon essaye avec le code hexadécimal (08) :

      $ echo -e "bon{back}jour" | sed 's/{back}/\x08/'
      bojour
      
      $ echo -e "bon{back}jour" | sed 's/{back}/\x08/'| sed -n l
      bon\bjour$
      $
      1. merci pour ta reponse rapide mais ca ne marche pas chez moi :/

        le shell que j utilise est bash

        ta commande donne :

        echo -e "bonjour" | sed 's/.$/^?/'
        bonjou^?

        ce dont j ai besoin c est

        echo -e "bon{BACK}jour" | sed 's/{BACK}/l_expr_que_je_cherche/'
        bojour

        merci quandd meme zipe :)
        1. ooops :p j avais fais copier coller de ta ligne en fait,

          en faisant la combinaison ca fonctionne, pareil pour le code hexa

          decidement linux est vraiment surprenant

          merci beaucoup zipe :)

          (pour info, la combinaison de touche fonctionne directement dans le shell et pour un script tapé dans un editeur j ai utilise le code hexa)