来自 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>'}
),因为刻度线是脚本分隔符,而大括号只是脚本。
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>'}
),因为刻度线是脚本分隔符,而大括号只是脚本。