Вот мой xml:
$ cat job.xml
<job>
<file> </file>
</job>
Я добавляю атрибут, это работает.
$ xmlstarlet edit --omit-decl --inplace --insert '//job/file' --type 'attr'\
-n 'type' --value 'text' --update '//job/file' --value file.txt job.xml\
$ cat job.xml
<job>
<file type="text">file.txt</file>
</job>
#Running again, this time I want it to replace if attribute is already present.
$ xmlstarlet edit --omit-decl --inplace --insert '//job/file' --type 'attr'\
-n 'type' --value 'bin' --update '//job/file' --value file.bin job.xml\
$ cat job.xml
<job>
<file type="text" type="bin">file.bin</file>
</job>
Я хочу <file type="bin">file.bin</file>
вместо <file type="text" type="bin">file.bin</file>
на этот раз.
Также мне нравится добавлять элемент, даже если он вообще отсутствует, например:
<job>
</job>