Search code examples
xmlbashediting

bash script to edit xml file


I want to edit the config file of a program that is an XML:

<software>
   <settings>
       ...
       <setting name="local directory" type="string">/home/username/</setting>
       ...
   </settings>
</software>

What is the easiest way to do this from a bash script?

Thanks


Solution

  • Depending on what you want to do, you may want to use some XML-specific tooling (to handle character encodings, to maintain XML well-formedness etc.). You can use the normal line-oriented tools, but unless you're careful (or doing something trivial) you can easily create non-compliant XML.

    I use the XMLStarlet command line set. It's a set of command line utilities for specifically parsing/manipulating XML.