用shell取出xml中的值

<?xml version="1.0" encoding="GBK" ?> <root num="1" maxid="1"> <mac_clone id="1" cnt="0"> <mac_clone_apply>1</mac_clone_apply> <mac_str>00:01:02:03:04:05</mac_str> <eth_name>eth2.5</eth_name> </mac_clone> </root># 以上格式,从 <mac_str>00:01:02:03:04:05</mac_str>中, 取出00:01:02:03:04:05

awk -v RS="</*mac_str>" 'NR==2{print}' file.xml


将 <mac_str> 和 </mac_str> 都设置为记录分隔符,打印第二条记录。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-07
用支持正则的任何命令,把<>部分全部删除就是。最好是perl,因为你需要非贪婪匹配。xsel -o是鼠标选择的内容。

▶ xsel -o|perl -e '$_=<>; s/<.*?>//g; print;'
1 00:01:02:03:04:05 eth2.5 # 以上格式,从 00:01:02:03:04:05
第2个回答  2017-10-15
mac_str=`cat file.xml |sed -n '/<mac_str>/,/<mac_str>p' | sed 's/<mac_str>//g;s/</mac_str>//g'`
echo $mac_str
第3个回答  2014-11-04
用jdom,dom4可以吧,shell是什么

如何利用Shell脚本解析XML文件中标记之内的值?
cat test.sh !\/bin\/bash if [ -z $1 ];then echo 'USAGE:COMMAND FILENAME'exit 0 fi filename=record.txt HOST=(`sed -n 's\/.*>\\(.*\\)<\\\/host>\/\\1\/p' $1`)OIDG=(`sed -n 's\/.*>\\(.*\\)<\\\/oidgroupname>\/\\1\/p' $1`)COMM=(`sed -n 's\/.*>\\(.*\\)<\\\/com...

shell脚本 怎么获取xml内容的标签属性值?
a=`awk '{for(i=1;i<=NF;i++)printf $i"\\n";printf "\\n"}' aa | grep "name=" |awk -F= '{print $2}'`;echo $a b=`awk '{for(i=1;i<=NF;i++)printf $i"\\n";printf "\\n"}' aa | grep "context=" |awk -F= '{print $2}'`;echo $b c=`awk '{for(i...

shell脚本读取xml文件,输出指定截取字段!!!
sed -n '\/task id\/{s\/"\/\/g;s\/^ *\/\/;p}' test.xml | awk -F"[= ]" '{print $3","$5}'

shell提取xml中的值
shell提取xml中的值 有五种情况<stringname="123">xxxxx<\/string><itemname="ss">xxxxx<item>***xxxxxxxx<stringname="123">xxxxxxxxxxxxxxx<\/string>需要提取出所有的xxxxxxx... 有五种情况<string name="123">xxxxx<\/string><item name="ss">xxxxx<item>***xxxxxxxx<string name="123">xxxxxxxxxxxxxxx...

使用shell脚本替换与更新文件里的一段内容,可以使用sed, awk等Linux工...
1)截取test.xml文件起始行到<abcdef>行,保存到tmp文件;2)将要添加的内容根据变量值展开,附加写入tmp文件;3)截取test.xml文件<\/abcdef>行到结束行,附加写入tmp文件。4)移动tmp文件覆盖test.xml文件。代码:!\/bin\/sh$hostnames="host1,host2,host3 ..."$paragraph="many_strings"sed -n...

求助shell脚本修改xml的值
假设你的内容在1.xml中,执行这个命令就行了(先备份一份原文件,-i参数会直接将结果覆盖到原文件上):sed -i 's\/\\(\\svalue=\\"\\)[^\\"]*\\"\/\\1ccc\\"\/;s\/\\(\\sdefaultValue=\\"\\)[^\\"]*\\"\/\\1ccc\\"\/;' 1.xml

如何用shell获取html网页中指定的文本数据
lastime = xmlhtml.xpath('\/\/div[starts-with(@id,"topic")]\/div[2]\/div[2]\/span[2]\/text()')data_text = [ text for text in content ]data_url = [ url for url in urllist ]data_time = [ t.strip() for t in lastime ]for i in xrange(0, len(data_text), 1...

shell脚本如何替换xml中指定的属性值
sed 's\/<id>.*<\\\/id>\/<id>123456-123456<\\\/id>\/g' old.xml > new.xml

shell提取文本内容
看你的文本这个文件里面应该有好几个uid,如果你只需要10133,那直接赋值给UID就可以了 如果是根据tencent来匹配的话,可以这样 UID=`cat \/data\/system\/appops.xml | grep -A 1 tencent | grep uid | awk -F\\" '{print $2}'`

求助shell脚本修改xml文件问题
!\/bin\/sh read name read ip sed -r -i "\/name=\\"$name\\"\/ s\/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\/$ip\/g" file.xml 自己制定需要替换的位置及需要替换的值 按你上面示例的需求可以如下赋值 在read name处给name赋值aaa,read ip处赋值14.14.14.14 ...

相似回答