Domanda
Come posso scappare '<' e ">" personaggio in sed.
Ho alcuni file XML che richiedono del testo tra i tag da sostituire. Come sfuggire a ">" e "<" caratteri.
Il problema con > e < ha un significato speciale nella shell per reindirizzare l'output su un file. Quindi la barra rovesciata non funziona.
Soluzione
Ok. Scoperto da solo. Usa le virgolette.
$ sed -i "s/>foo</>bar</g" file
Altri suggerimenti
Basta mettere una barra rovesciata prima di racchiuderli o racchiuderli tra virgolette singole o doppie. A pensarci bene, penso che la tua domanda debba essere più chiara. Stai cercando di usare sed per elaborare un file XML e vuoi ottenere cosa c'è tra un tag? Quindi vuoi:
sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml
Sfuggili con la barra rovesciata
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow