Question

Comment puis-je m'échapper '<' et '>' personnage en sed.

J'ai des fichiers XML qui nécessitent du texte entre les balises à remplacer. Comment puis-je échapper au '>' et '<' caractères.

Le problème avec > et < est-ce que cela a une signification spéciale dans le shell pour rediriger la sortie vers un fichier. Donc, la barre oblique inverse ne fonctionne pas.

Était-ce utile?

La solution

Ok. Découvert par moi-même. Utilisez des guillemets.

$ sed -i "s/>foo</>bar</g" file

Autres conseils

Il suffit de mettre une barre oblique inverse devant eux ou de les mettre entre guillemets simples ou doubles. À la réflexion, votre question doit, à mon avis, être plus claire. Essayez-vous d'utiliser sed pour traiter un fichier XML et souhaitez-vous séparer un tag? Alors vous voulez:

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml

Échappez-les avec une barre oblique inverse

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top