SED : Remplacer des caractères spéciaux

Tout ce qui concerne la programmation.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

[Édité] suivre le lien suivant pour savoir comment :
Remplacer des caractères spéciaux avec sed

Tout est dans le titre,

ça m'a permis p.ex de remplacer les guillemets simples ' avec \x27

ce qui n'était à priori pas vraiment évident (pour moi)

On obtient la valeur "27" avec :

Code : Tout sélectionner

$ printf "'" | od -vAn -tx1
 27
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4957
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Avec sed ?

Code : Tout sélectionner

$ echo "'" | sed -e "s/'/27/g"
27
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Je n'avais pas précisé que l'info est dans l'article en lien,
c'est rajouté.

od sert à trouver le code hexa des caractères qui peuvent poser problème :
p.ex : \' ne fonctionne pas mais \x27 oui !

Si dans un ficher tu as des expressions du genre : '<motif>'

que tu souhaites remplacer par : <motif> (sans quotes)

<motif> étant une Expression Rationnelle

Code : Tout sélectionner

sed -i 's/\x27<motif>\x27/<motif>/g' fichier.txt
... fait ce job :dirol:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4957
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

:good:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre