我需要在 xml 文件中添加大量标签。该文件是Openmediavault系统 ( Debian ) config.xml文件。
具体来说,我需要通过命令行通过SMB共享硬盘。我考虑过通过SSH命令或任务调度程序中的脚本来完成。但我要补充的内容相当广泛。我怎么能做到?有没有办法使用xmlstarlet来做到这一点?我还没有找到添加这么多标签的简单方法。让我们看看你能不能给我一个想法。
我必须将所有这些标签放在标签<smb></smb>
内
<share>
<uuid>0be7e06a-a888-436d-8088-5ec63963vf5</uuid>
<enable>1</enable>
<sharedfolderref>626db680-b317-42b9-a312-d30392bd5re4</sharedfolderref>
<comment></comment>
<guest>no</guest>
<readonly>0</readonly>
<browseable>1</browseable>
<recyclebin>1</recyclebin>
<recyclemaxsize>0</recyclemaxsize>
<recyclemaxage>0</recyclemaxage>
<hidedotfiles>1</hidedotfiles>
<inheritacls>1</inheritacls>
<inheritpermissions>0</inheritpermissions>
<easupport>0</easupport>
<storedosattributes>0</storedosattributes>
<hostsallow></hostsallow>
<hostsdeny></hostsdeny>
<audit>0</audit>
<timemachine>0</timemachine>
<extraoptions></extraoptions>
</share>
我尝试以这种方式添加它,在subnode.xml中,我已将我想要添加的内容插入到共享标签中,但它不起作用,它向我显示了 xml 的内容并且不对其进行编辑。
sudo xmlstarlet ed -a "//config/services/smb/shares/" -t elem -n share \ -v "$(xmlstarlet sel -t -c '//share/*' subnode.xml)" config.xml\ | xmlstarlet unesc