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.

È stato utile?

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
scroll top