J'ai un répertoire plein de fichiers XML qui ressemblent à ceci, pour lequel je veux changer la valeur du numéro d'élément "offset" de 1 à un autre numéro
$ cat my.xml
<offset xmlns="">1</offset>
J'ai écrit diverses combinaisons de cette commande sed, mais rien de ce que j'ai essayé ne s'exécute sans erreur. Je suis à peu près sûr que j'ai besoin d'échapper à certains caractères, mais ceux que j'ai essayés se terminent toujours par des erreurs ("jeton inattendu", "option inconnue", etc.). J'ai aussi essayé sans le drapeau -e, car ce n'est vraiment pas une expression.
sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml
Toute aide serait appréciée.
Réponse acceptée :
Essayez ceci,
$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
<offset xmlns="">99</offset>
Utilisez un délimiteur sed différent si l'entrée contient des barres obliques.