XML-Text Parsing Using shell scripting

HI Guys,

I have to parse below xml file :-

<xn:SubNetwork id="ONRM_ROOT_MO_R">
            <xn:MeContext id="LP101">
                <xn:ManagedElement id="1">
                    <xn:VsDataContainer id="1">
                        <xn:attributes>
                            <xn:vsDataType>vsDataEquipment</xn:vsDataType>
                            <es:vsDataEquipment/>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                 <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>80</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="2">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>30</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>80</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                    </xn:VsDataContainer>
                </xn:ManagedElement>
            </xn:MeContext>
            <xn:MeContext id="LP102">
                <xn:ManagedElement id="1">
                    <xn:VsDataContainer id="1">
                        <xn:attributes>
                            <xn:vsDataType>vsDataEquipment</xn:vsDataType>
                            <es:vsDataEquipment/>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>20</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="2">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>100</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <xn:vsDataFormatVersion>EricssonSpecificAttributes.12.26</xn:vsDataFormatVersion>
                                    <es:vsDataRetSubUnit>
                                    <es:el>80</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                    </xn:VsDataContainer>
                </xn:ManagedElement>
            </xn:MeContext>
            <xn:MeContext id="LP103">
                <xn:ManagedElement id="1">
                    <xn:VsDataContainer id="1">
                        <xn:attributes>
                            <xn:vsDataType>vsDataEquipment</xn:vsDataType>
                            <es:vsDataEquipment/>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>80</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="2">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>100</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:el>90</es:el>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                    </xn:VsDataContainer>
                </xn:ManagedElement>
            </xn:MeContext>
            

I want below Output in taxt file :-

MO	el
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	30
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	20
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	100
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	100
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	90

try this..

awk -F '[:"<>]' -v VM="Equipment,AntennaUnitGroup,AntennaNearUnit,RetSubUnit" '{split(VM,M,",")}
/SubNetwork/{S=$3$4;}
/MeContext/{P=$3"="$4}
/ManagedElement/{K=$3"="$4;a=0}
/VsDataContainer id=/{if(T){a++;T=T","M[a]"="$4;}else{a++;T=M[a]"="$4}}
/<es:el>/{if(a==4){print S,P,K,T,$4;a=0;T=""}else{print S,P,K,T,M[4]"=1",$4;a=0;T=""}} ' OFS=, file

I am getting small error in Output :-

SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1,90
SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1,0
SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=2,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1,60
SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1,0
SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=3,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1,80
SubNetwork id=ONRM_ROOT_MO_R,MeContext id==LP101,ManagedElement id==1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1,0

I want below Output

SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	90
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	60
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	80

Thanks a lot for your time

something like this..

$awk -F '[:"<>]' -v VM="Equipment,AntennaUnitGroup,AntennaNearUnit,RetSubUnit" '{split(VM,M,",")}
/SubNetwork/{gsub(" id=","=",$0);S=$3$4;}
/MeContext/{gsub(" id=","=",$0);P=$3$4}
/ManagedElement/{gsub(" id=","=",$0);K=$3$4;a=0}
/VsDataContainer id=/{if(T){a++;T=T","M[a]"="$4;}else{a++;T=M[a]"="$4}}
/<es:el>/{if(a==4){print S,P,K,T"\t"$4;a=0;T=""}else{print S,P,K,T,M[4]"=1""\t"$4;a=0;T=""}} ' OFS=, file

SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        30
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP101,ManagedElement=1,Equipment=3,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        20
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        100
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP102,ManagedElement=1,Equipment=3,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        80
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        100
SubNetwork=ONRM_ROOT_MO_R,MeContext=LP103,ManagedElement=1,Equipment=3,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1        90

Thanks a lot men its great and heads off to you Sir,

still getting small data swap issue..here i have post for two different data type

One have LP106 have two "et" output and LP107 have "et" one output

I have change el=et

<xn:MeContext id="LP106">
                <xn:ManagedElement id="1">
                    <xn:VsDataContainer id="1">
                        <xn:attributes>
                            <xn:vsDataType>vsDataEquipment</xn:vsDataType>
                            <es:vsDataEquipment/>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>90</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                            <xn:VsDataContainer id="2">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>0</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="2">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>60</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                            <xn:VsDataContainer id="2">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>0</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>80</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                            <xn:VsDataContainer id="2">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>0</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                    </xn:VsDataContainer>
                </xn:ManagedElement>
            </xn:MeContext>
            <xn:MeContext id="LP107">
                <xn:ManagedElement id="1">
                    <xn:VsDataContainer id="1">
                        <xn:attributes>
                            <xn:vsDataType>vsDataEquipment</xn:vsDataType>
                            <es:vsDataEquipment/>
                        </xn:attributes>
                        <xn:VsDataContainer id="1">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>40</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="2">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>40</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                        <xn:VsDataContainer id="3">
                            <xn:attributes>
                                <xn:vsDataType>vsDataAntennaUnitGroup</xn:vsDataType>
                                <es:vsDataAntennaUnitGroup/>
                            </xn:attributes>
                            <xn:VsDataContainer id="1">
                                <xn:attributes>
                                    <xn:vsDataType>vsDataAntennaNearUnit</xn:vsDataType>
                                    <es:vsDataAntennaNearUnit/>
                                </xn:attributes>
                                <xn:VsDataContainer id="1">
                                    <xn:attributes>
                                    <xn:vsDataType>vsDataRetSubUnit</xn:vsDataType>
                                    <es:vsDataRetSubUnit>
                                    <es:et>70</es:et>
                                    </es:vsDataRetSubUnit>
                                    </xn:attributes>
                                </xn:VsDataContainer>
                            </xn:VsDataContainer>
                        </xn:VsDataContainer>
                    </xn:VsDataContainer>
                </xn:ManagedElement>
            </xn:MeContext>

I need below Output :--

MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	90
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=2,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	80
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=2,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	60
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=2,RetSubUnit=1	0
MeContext=LP107,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	40
MeContext=LP107,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	40
MeContext=LP107,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	70

Equipment always =1 but AntennaUnitGroup will change 1 or 2 or 3 etc and AntennaNearUnit change if it have two output.

Thanks agiain for your valuable time

try this...

awk -F '[:"<>]' -v VM="Equipment,AntennaUnitGroup,AntennaNearUnit,RetSubUnit" '{split(VM,M,",")}
/MeContext/{gsub(" id=","=",$0);P=$3$4}
/ManagedElement/{gsub(" id=","=",$0);K=$3$4;a=0}
/VsDataContainer id=/{if(T){a++;T=T","M[a]"="$4;}else{a++;T=M[a]"="$4}}
/<es:et>/{if(a==4){print P,K,T"\t"$4;a=0;T=""}else{print P,K,T,M[4]"=1""\t"$4;a=0;T=""}} ' OFS=, file

Hope this helps you:)

Still getting wrong Output :-

MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	90
MeContext=LP106,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	60
MeContext=LP106,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=3,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	80
MeContext=LP106,ManagedElement=1,Equipment=2,AntennaUnitGroup=1,RetSubUnit=1	0

I want like this

MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1	90
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=2,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=1,RetSubUnit=1	60
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=2,AntennaNearUnit=2,RetSubUnit=1	0
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=1,RetSubUnit=1	80
MeContext=LP106,ManagedElement=1,Equipment=1,AntennaUnitGroup=3,AntennaNearUnit=2,RetSubUnit=1	0

try this..

Hope this is same as you want..:slight_smile:

awk -F '[:"<>]' -v VM="Equipment,AntennaUnitGroup,AntennaNearUnit,RetSubUnit" '{split(VM,M,",")}
/MeContext/{gsub(" id=","=",$0);P=$3$4}
/ManagedElement/{gsub(" id=","=",$0);K=$3$4;a=0}
/VsDataContainer id=/{a++;p[a]=$4}
/<es:et>/{
if(a==4){for(i=1;i<=4;i++){if(T){T=T","M"="p}else{T=M"="p}}}
else if(a==3){T=M[1]"=1";for(i=2;i<=4;i++){T=T","M"="p[i-1]}}
else{T=M[1]"=1,"M[2]"="p[1]","M[3]"=2,"M[4]"=1"}{print P,K,T"\t"$4;T="";a=0}}'  OFS=, file

Just Amazing ...............just awesome................

Thanks a lot ....You r genius :):):):):):):):slight_smile:

1 Like