我有一个包含用户身份信息的XML文件。我想自动化用户的修改和删除,到目前为止,使用XmlStarlet进行了成功的删除。现在我不知道如何通过搜索用户名来修改用户信息。谁能帮助我的命令如何修改使用xmlstarlet
<table name="MANAGED_USER" keys="CONTEXT_ID,USERNAME">
<row>
<column name="USERNAME">IAM_User7</column>
<column name="CONTEXT_ID">PROVCLIENT</column>
<column name="ALGORITHM">DESEDE</column>
<column name="PASSWORD">2e02f952e8743b36</column>
<column name="FAILED_LOGINS">0</column>
<column name="REALNAME">IAM User 7</column>
<column name="VALIDFROM">2013-06-03 00:00:00.0</column>
<column name="VALIDUNTIL">2014-06-01 00:00:00.0</column>
<column name="USER_TYPE">1</column>
<column name="LOCKED">0</column>
<column name="CHANGED_BY">tam</column>
<column name="ORGANISATION_NAME" is_null="true">null</column>
</row>
</table>
Thanks in advance
像这样?(锁定用户名"IAM_User7")
xmlstarlet ed -u '/table/row[column[@name = "USERNAME"] = "IAM_User7"]/column[@name = "LOCKED"]' -v 1 table.xml
假设table.xml
包含问题中的内容。
添加一个新用户是非常繁琐的,这只是前两个字段:
xmlstarlet ed -s /table -t elem -n row -v ''
--var new '$prev'
-s '$new' -t elem -n column -v IAM_User8
-s '$prev' -t attr -n name -v USERNAME
-s '$new' -t elem -n column -v PROVCLIENT
-s '$prev' -t attr -n name -v CONTEXT_ID
table.xml
要求版本1.4.0或更高(--var
和$prev
;