Shell 我想通过pass_flag的echo命令中的test_var
我正在解析一个XML文件Shell 我想通过pass_flag的echo命令中的test_var,shell,unix,awk,Shell,Unix,Awk,我正在解析一个XML文件users.XML,我想传递$3,它将密码值保存到trial.sh。 XML文件如下所示: <Users> <user> <name>Veera</name> <password>!#!veera@nbs</password> </user> </Users> 维拉 !#!veera@nbs awk' 开始{FS=“[]” { 如果($2==“密码”) { 如果($3=
users.XML
,我想传递$3
,它将密码值保存到trial.sh
。
XML文件如下所示:
<Users>
<user>
<name>Veera</name>
<password>!#!veera@nbs</password>
</user>
</Users>
维拉
!#!veera@nbs
awk'
开始{FS=“[]”
{
如果($2==“密码”)
{
如果($3==”!#!veera@nbs")
{
encrypted=“”`sh test.sh$3`“
sub(3美元,加密)
}
}
打印
}
'users.xml>users2.xml
XML文件包含元素password
,$3
保存了新密码,我想将其传递给试用版.sh
,该密码加密$3
(!#!veera@nbs
)并返回结果,该结果将存储在加密的awk
变量中,并替换现有值。$awk-F''NF>1{打印$2}文件
$ awk -F'</?password>' 'NF>1{print $2}' file
!#!veera@nbs
!#!veera@nbs
因此:
test.sh“$(awk-F''NF>1{print$2}”文件)
以上假设您的文件始终如示例所示格式良好,并且没有(例如)与标记不同的行上的密码值。Hi-Ed感谢您的帮助。.我已经编辑了它。.嘿,Ed,我希望您现在可以帮助我如果有人在密码中使用
,您将遇到问题(或|
-在字符类中,不需要显式的“或”操作)。找出哪些网站不允许使用尖括号总是很有趣的。我还注意到,标题中提到了echo
和test\u var
,这两个词都没有出现在问题的主体中。这让人困惑。谢谢Jonathan,你能推荐一些xml解析的技巧吗?我已经尝试过很多Jonathan,但大多数都不适合my要求..你能推荐一些链接吗
$ awk -F'</?password>' 'NF>1{print $2}' file
!#!veera@nbs
test.sh "$(awk -F'</?password>' 'NF>1{print $2}' file)"