如何在props.xml中根据name属性提取对应value值并存储到变量
提取props.xml中指定property的value值(grep后切割方法)
针对props.xml中类似 <property name="property.first" value="some_value_here"/> 的行,已知property.first/property.second为唯一标识,可通过以下grep结合文本切割的方法提取对应的some_value_here:
方法1:grep + cut
以双引号为分隔符,直接截取目标字段:
# 提取property.first对应的value grep 'property.first' props.xml | cut -d '"' -f4 # 提取property.second对应的value grep 'property.second' props.xml | cut -d '"' -f4
原理:cut -d '"' 将每行按双引号拆分,第4个字段正好是value属性的内容。
方法2:grep + sed
用正则匹配捕获目标内容:
# 提取property.first对应的value grep 'property.first' props.xml | sed 's/.*value="\([^"]*\)".*/\1/' # 提取property.second对应的value grep 'property.second' props.xml | sed 's/.*value="\([^"]*\)".*/\1/'
原理:正则表达式匹配value="之后到下一个双引号前的所有内容,通过捕获组提取并替换整行。
方法3:grep + awk
同样以双引号为分隔符,打印目标字段:
# 提取property.first对应的value grep 'property.first' props.xml | awk -F '"' '{print $4}' # 提取property.second对应的value grep 'property.second' props.xml | awk -F '"' '{print $4}'
原理:awk -F '"' 指定双引号为分隔符,$4对应拆分后的第4个字段,即value的内容。
内容的提问来源于stack exchange,提问作者sai akhil
相关产品推荐
相关产品推荐

