sto usando sed
comando di cambiare <active>true
a <active>false
in un file xml. Ora se lo uso
sed 's/<active>true/<active>false/g' file.xml > file.xml
cancella completamente il contenuto del mio file. Durante l'utilizzo >>
invece di >
, aggiunge l'output alla fine come dovrebbe fare.
- Come ottenere ciò che voglio fare?
- Perché è
>
comportarsi così stranamente? - Quello che in realtà voglio fare è cambiare
<active>true
a<active>false
Se<active>true
è presente e viceversa se<active>false
è presente nel file. C'è qualche comando che può farlo o ho bisogno di scrivere uno script conif-else
come il mio piano originale?
file.xml
è stato troncato prima sed
è stato eseguito?
sponge
.
sed -i
risolto problema 2 e 1, anche se su utilizzando spugna, ha dato command not found
errore
sponge
è una parte di moreutils
pacchetto che non è installato di default. Immagino che in altre distro la situazione sia simile.
sed -i
.