Effectuer un backpace avec sed

Résolu
matmat -  
 matmat -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

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

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

    ;-))
    1
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  3. matmat
     
    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 :)
    0
  4. matmat
     
    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)
    0