Ho una directory piena di file XML che assomiglia a questo, per il quale voglio cambiare il valore del numero dell'elemento "offset" da 1 a un altro numero
$ cat my.xml
<offset xmlns="">1</offset>
Ho scritto varie combinazioni di questo comando sed, ma nulla di ciò che ho provato viene eseguito senza errori. Sono abbastanza sicuro di dover sfuggire ad alcuni personaggi, ma quelli che ho provato finiscono sempre con errori ("token imprevisto", "opzione sconosciuta", ecc.). Ho anche provato senza il flag -e, poiché in realtà non è un'espressione.
sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml
Qualsiasi aiuto sarebbe apprezzato.
Risposta accettata:
Prova questo,
$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
<offset xmlns="">99</offset>
Usa un delimitatore sed diverso se l'input contiene barre.