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. 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. 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. 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)