#1 Le 09/09/2020, à 18:19
- john25
[Résolu] sed et caractères spéciaux
bonjour,
je cherche la bonne syntaxe pour une commande sed.
je cherche à remplacer directement dans un fichier en en faisant une sauvegarde (/etc/bash.bashrc),
ceci :
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
par cela (différence en gras/italique):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\[\033[00m\]\$ '
Je ne parviens pas à le faire, j'ai dû tester 50 possibilités mais je ne trouve pas.
En exemple, la dernière que j'ai tapé (sûrement que les 3/4 de la syntaxe ne sont pas bon, merci de corriger tout ce qui ne va pas).
sed -i.bak 's|PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '|PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\[\033[00m\]\$ '|' /etc/bash.bashrc
Comment faire ?
Dernière modification par john25 (Le 09/09/2020, à 20:38)
Merci par Avance !
Hors ligne
#2 Le 09/09/2020, à 19:07
- nany
Re : [Résolu] sed et caractères spéciaux
Bonjour,
Essaie ceci :
sudo sed -i.bak 's#\(.*\\\)\(u@\\h:\\w\)\(\\\$ .\)#\1\[\\033\[01;32m\\\]\\\2\[\\033\[00m\\\]\3#' /etc/bash.bashrc
Hors ligne
#3 Le 09/09/2020, à 20:36
- john25
Re : [Résolu] sed et caractères spéciaux
Merci Nany, ça fonctionne nickel.
Illisible, mais ça fonctionne.
Je n'ai vu aucune documentation parler de "#" pour 'ponctuer' la commande.
Et je n'avais pas tenté d'échappement du style '\\\'.
J'aurai pu chercher encore des heures.
Encore Merci.
Merci par Avance !
Hors ligne