2008-09-30 23 views
3

Comment échapper le caractère '<' et '>' dans sed.Échapper < and > dans sed/shell

J'ai quelques fichiers xml qui ont besoin de texte entre les balises à remplacer. Comment j'échappe aux caractères '>' et '<'. Le problème avec> et < est qu'il a une signification spéciale dans le shell pour rediriger la sortie vers un fichier. Donc, la barre oblique inversée ne fonctionne pas.

Répondre

4

Ok. Trouvé par moi-même. Utilisez des citations.

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

leur échapper avec Doseret

0

Il suffit de mettre une barre oblique inverse avant ou de les enfermer dans des guillemets simples ou doubles. À la réflexion, votre question doit être plus claire. Essayez-vous d'utiliser sed pour traiter un fichier XML et vous voulez obtenir ce qu'il y a entre une balise? Alors vous voulez:

sed -re '[email protected](<TAG.*?>).*?(</TAG>)@\1hi\[email protected]' test.xml 
+0

Je ne souhaite pas traiter le fichier xml. Il suffit de remplacer du texte entre le foobar. En tout cas merci. – cnu