Grep使用Grep/sed从XML文件中提取单词

Grep使用Grep/sed从XML文件中提取单词,xml,linux,bash,sed,grep,Xml,Linux,Bash,Sed,Grep,我正在编写一个linux shell脚本,以使用grep在xml文件中查找信息。我需要的信息是用户名wipis_dxu,不带标签。我不允许使用xgrep之类的工具 <Parameter displayName="Server" id="Server"> <value>dxstg.target_domain</value> </Parameter> <Parameter isRequired="true" displayName="User

我正在编写一个linux shell脚本,以使用grep在xml文件中查找信息。我需要的信息是用户名wipis_dxu,不带标签。我不允许使用xgrep之类的工具

<Parameter displayName="Server" id="Server">
 <value>dxstg.target_domain</value>
</Parameter>
<Parameter isRequired="true" displayName="User name" id="Username">
  <value>wipis_dxu</value>
</Parameter>
<Parameter isRequired="true" displayName="Password" id="Password">
  <value>wovon_man_nicht_reden_kann_darueber_muss_mann_schweigen</value>
</Parameter>
简要说明

/用户名/:查找用户名 n:读取下一行输入 s、 *>.*。。。 将在当前目录和所有子目录中搜索wipis_dxu。

不要使用sed和grep处理XML,请使用支持XML的工具。例如,在我维护的一个名为

xsh -I file.xml 'echo //Parameter[@id="Username"]/value'
仅限GREP

这有点棘手,因为grep逐行匹配,在用户名的行中没有特别说明是用户名而不是密码

因此,您必须链接greps:


grep-A 1用户名文件| grep-o-p'[^>]+?=我同意sed是一个更好的工具,但OP最初要求一个grep解决方案…sed标签也附在问题中,因此,我尝试提供我认为最合适的方法。我知道,但我只是治理方面的培训人员,我们有非常高的安全标准,我不能下载或使用任何未经批准的东西。高安全标准和sed/grep解析XML是矛盾的。堆栈溢出不是一种代码编写服务。请出示你的密码。因为堆栈溢出对您隐藏了关闭的原因:寻求调试帮助的问题为什么这段代码不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。
grep -r "wipis_dxu"
xsh -I file.xml 'echo //Parameter[@id="Username"]/value'