Linux中AWK获取xml文件节点值

来源:互联网 发布:人数统计摄像头的算法 编辑:程序博客网 时间:2024/05/16 07:55
config.xml:
<config version=1.0>
        <MOC name="PEER">
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.10"/>               
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.11"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.12"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.13"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.14"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.15"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.19"/>
        </MOC>


        <MOC name="SPM">
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.20"/>               
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.21"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.22"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.23"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.24"/>
        </MOC>


        <MOC name="PEER">
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.25"/>               
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.26"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.27"/>
        </MOC>
               
        <MOC name="SPM">
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.28"/>               
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.29"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.30"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.31"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.32"/>
        </MOC>


        <MOC name="LMS">
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.33"/>               
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.34"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.35"/>
                <MIC name="BUSSIP" PORT="18000" value="10.10.10.36"/>
        </MOC>
</config>


我的需求:
       遍历config.xml文件,查找与指定的IP相等的父标签的name属性。例如:查找到10.10.10.27,就返回“PEER”值;查找到10.10.10.31,就返回“SPM”值
如果上面不能实现,也可以用下面的需求:
       遍历config.xml文件的所有<MOC name="LMS">标签中的内容,如果找到匹配的ip如10.10.10.35,返回“LMS”值,遍历所有<MOC name="SPM">标签对的内容,
       如果找到匹配的ip如10.10.10.31,就返回“LMS”值


需要用awk实现,哪位兄弟如果有招的话,麻烦指教下!!!小弟感激不尽!!!




awk -F'"' '/MOC/{a=$2}/10.10.10.27/{print a}'
原创粉丝点击