来自 XML 标签的值解析

Value parsing from XML tag

cat /home/user/my.xml | grep -e productVersion | awk {'print '}

它解析文件 my.xml 中的数据,其中我有一个这样的标签:

<product productVersion="10.2.14.0" Type="test" Sub="0.3">

最后我有一个好结果:

productVersion="10.2.14.0"

但是在其他桌面的任何最旧版本 XML 上,列不能是 $2、$3 和 $4 等。当然,我尝试做 ID ELSE,它有效,但我真的不知道每个每台 PC 上的列。

可能是某种功能或技巧,例如,我可以把 productVersion=* 放在哪里,我可以在哪里看到标签 productVersion="10.2.14.0" 的结果?

使用适当的解析器从 XML.

中提取信息
xmllint my.xml --xpath '//product/@productVersion'

由于您要求 awk 回答:

$ awk 'match([=10=],/productVersion="[^"]+"/){ print substr([=10=],RSTART,RLENGTH) }' file
productVersion="10.2.14.0"

或者呆呆地看着:

$ awk 'match([=11=],/productVersion="[^"]+"/,a){ print a[0] }' file
productVersion="10.2.14.0"

请注意,刻度线位于 awk 脚本之外 (awk '<whole script>'),而不是在大括号内 awk {'<rest of script>'}),因为刻度线是脚本分隔符,而大括号只是脚本。