从xml文件,bash中提取值

用户名

我需要有关在Shell脚本中解析xml文件的帮助,我需要从给定的xml文件中提取值,并将其放入变量中。这是xml文件的一部分

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE Site SYSTEM "SiteEquipment.dtd"  >

<!--    Site Equipment Configuration   -->



<Site>


<Format

revision="AK5"

/>


<OptionalEquipmentConfiguration

configureSau="NO"

absoluteTimeSynchEnabled="NO"

gpsOutEnabled="FALSE"

smokeDetector="FALSE"

/>


<SiteLocationConfiguration

siteName="Alzey002"

logicalName="FXU046"

>


<SectorData

sectorNumber="1"

latitude="4635826"

latHemisphere="NORTH"

longitude="377963"

geoDatum="DHDN-"

beamDirection="060"

height="3000"

sectorGroup="-1"

/>


<SectorData

sectorNumber="2"

latitude="4635826"

latHemisphere="NORTH"

longitude="377963"

geoDatum="DHDN-"

beamDirection="140"

height="3000"

sectorGroup="-1"

/>


<SectorData

sectorNumber="3"

latitude="4635826"

latHemisphere="NORTH"

longitude="377963"

geoDatum="DHDN-"

beamDirection="300"

height="3000"

sectorGroup="-1"

/>

</SiteLocationConfiguration>


<SectorCapabilitySettings>


<SectorCapability

radioBuildingBlock="RBB12_1A"

cpriLineRate="Ox4"

sectorNumber="1"

primaryPortId="BU1_A"

sectorSequenceNumber="1"

rruInstalled="NO"

/>


<SectorCapability

radioBuildingBlock="RBB12_1A"

cpriLineRate="Ox4"

sectorNumber="2"

primaryPortId="BU1_B"

sectorSequenceNumber="1"

rruInstalled="NO"

/>


<SectorCapability

radioBuildingBlock="RBB12_1A"

cpriLineRate="Ox4"

sectorNumber="3"

primaryPortId="BU1_C"

sectorSequenceNumber="1"

rruInstalled="NO"

/>

</SectorCapabilitySettings>


<SectorEquipmentConfiguration>


<TmaConfiguration>


<TmaSector

sectorNumber="1"

tmaType="NONE"

tmaType2="NONE"

tmaType3="NONE"

typeOfRet="RETU"

typeOfRet2="NONE"

typeOfRet3="NONE"

riuInstalled="NO"

riuInstalled2="NO"

currentLowSupervision_A="ON"

currentLowSupervision_B="ON"

currentLowSupervision_C="ON"

currentLowSupervision_D="ON"

/>


<TmaSector

sectorNumber="2"

tmaType="NONE"

tmaType2="NONE"

tmaType3="NONE"

typeOfRet="RETU"

typeOfRet2="NONE"

typeOfRet3="NONE"

riuInstalled="NO"

riuInstalled2="NO"

currentLowSupervision_A="ON"

currentLowSupervision_B="ON"

currentLowSupervision_C="ON"

currentLowSupervision_D="ON"

/>


<TmaSector

sectorNumber="3"

tmaType="NONE"

tmaType2="NONE"

tmaType3="NONE"

typeOfRet="RETU"

typeOfRet2="NONE"

typeOfRet3="NONE"

riuInstalled="NO"

riuInstalled2="NO"

currentLowSupervision_A="ON"

currentLowSupervision_B="ON"

currentLowSupervision_C="ON"

currentLowSupervision_D="ON"

/>

</TmaConfiguration>


<AntennaConfiguration>


<AntennaSector

sectorNumber="1"

antennaType="2"

antennaType2="0"

antennaType3="0"

mechanicalTilt="0"

mechanicalTilt2="0"

mechanicalTilt3="0"

electricalTilt="30"

band="1"

fqBandHighEdgeBranchA="21250"

fqBandLowEdgeBranchA="21100"

fqBandHighEdgeBranchB="21250"

fqBandLowEdgeBranchB="21100"

fqBandHighEdgeBranchC=""

fqBandLowEdgeBranchC=""

fqBandHighEdgeBranchD=""

fqBandLowEdgeBranchD=""

fqBandHighEdgeBranchE=""

fqBandLowEdgeBranchE=""

fqBandHighEdgeBranchF=""

fqBandLowEdgeBranchF=""

dlFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

sectorOutputPower="60"

beamDirection="060"

beamDirection2="000"

beamDirection3="000"

/>


<AntennaSector

sectorNumber="2"

antennaType="2"

antennaType2="0"

antennaType3="0"

mechanicalTilt="0"

mechanicalTilt2="0"

mechanicalTilt3="0"

electricalTilt="0"

band="1"

fqBandHighEdgeBranchA="21250"

fqBandLowEdgeBranchA="21100"

fqBandHighEdgeBranchB="21250"

fqBandLowEdgeBranchB="21100"

fqBandHighEdgeBranchC=""

fqBandLowEdgeBranchC=""

fqBandHighEdgeBranchD=""

fqBandLowEdgeBranchD=""

fqBandHighEdgeBranchE=""

fqBandLowEdgeBranchE=""

fqBandHighEdgeBranchF=""

fqBandLowEdgeBranchF=""

dlFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

sectorOutputPower="60"

beamDirection="140"

beamDirection2="000"

beamDirection3="000"

/>


<AntennaSector

sectorNumber="3"

antennaType="2"

antennaType2="0"

antennaType3="0"

mechanicalTilt="0"

mechanicalTilt2="0"

mechanicalTilt3="0"

electricalTilt="60"

band="1"

fqBandHighEdgeBranchA="21250"

fqBandLowEdgeBranchA="21100"

fqBandHighEdgeBranchB="21250"

fqBandLowEdgeBranchB="21100"

fqBandHighEdgeBranchC=""

fqBandLowEdgeBranchC=""

fqBandHighEdgeBranchD=""

fqBandLowEdgeBranchD=""

fqBandHighEdgeBranchE=""

fqBandLowEdgeBranchE=""

fqBandHighEdgeBranchF=""

fqBandLowEdgeBranchF=""

dlFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchA="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederAttenuationBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

dlFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

ulFeederDelayBranchB="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1"

sectorOutputPower="60"

beamDirection="300"

beamDirection2="000"

beamDirection3="000"

/>

</AntennaConfiguration>


<InitiateSectorsConfiguration>


<InitiatedSector

sectorNumber="1"

antennaSupervisionBranchA="10"

antennaSupervisionBranchB="10"

antennaSupervisionBranchC="0"

antennaSupervisionBranchD="0"

antennaSupervisionBranchE="0"

antennaSupervisionBranchF="0"

/>


<InitiatedSector

sectorNumber="2"

antennaSupervisionBranchA="10"

antennaSupervisionBranchB="10"

antennaSupervisionBranchC="0"

antennaSupervisionBranchD="0"

antennaSupervisionBranchE="0"

antennaSupervisionBranchF="0"

/>


<InitiatedSector

sectorNumber="3"

antennaSupervisionBranchA="10"

antennaSupervisionBranchB="10"

antennaSupervisionBranchC="0"

antennaSupervisionBranchD="0"

antennaSupervisionBranchE="0"

antennaSupervisionBranchF="0"

/>

</InitiateSectorsConfiguration>


<LocalCellConfiguration

carrierAllocationMode="Flexible"

>


<Sector

sectorNumber="1"

>


<Cell

cellNumber="1"

cellCreated="YES"

cellIdentity="461"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="2"

cellCreated="YES"

cellIdentity="465"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="3"

cellCreated="YES"

cellIdentity="468"

cellRange="35000"

baseBandPoolId="1"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>

</Sector>


<Sector

sectorNumber="2"

>


<Cell

cellNumber="1"

cellCreated="YES"

cellIdentity="462"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="2"

cellCreated="YES"

cellIdentity="466"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="3"

cellCreated="YES"

cellIdentity="469"

cellRange="35000"

baseBandPoolId="1"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>

</Sector>


<Sector

sectorNumber="3"

>


<Cell

cellNumber="1"

cellCreated="YES"

cellIdentity="463"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="2"

cellCreated="YES"

cellIdentity="467"

cellRange="35000"

baseBandPoolId="2"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>


<Cell

cellNumber="3"

cellCreated="YES"

cellIdentity="460"

cellRange="35000"

baseBandPoolId="1"

numberOfTxBranches="1"

numberOfRxBranches="2"

/>

</Sector>

</LocalCellConfiguration>

</SectorEquipmentConfiguration

所以我需要提取一些示例cellIdentity值,每个部门数据下的值

Sector 1
VAR1=461
VAR2=465
VAR3=468

Sector 2
VAR4=462
VAR5=466
VAR6=469

Sector 3
VAR7=463
VAR8=467
VAR9=460

我尝试了xmllint,但出现了一些错误:

 /usr/bin/xmllint --shell 1.xml <<<"cat/<Site/LocalCellConfiguration/Sector/Cell/cellIdentity/" | grep -v "^/ >"

好吧,我对xmllint不太熟悉,但是我需要查看它的工作方式,以便可以从文件中提取其他值。

马克·谢切尔

*强文本*这可能使您接近:

awk -F\" '/sectorNumber/{x="Sector:" $2 RS} /cellIdentity/{x=x $2 RS} /\<\/Sector/{printf x}' file

输出:

Sector:1
461
465
468
Sector:2
462
466
469
Sector:3
463
467
460

如果sectorNumber看到,x则使用字段2中的扇区号创建输出变量。如果cellIdentity看到a,则将其拾取并附加以x分隔符。如果</Sector遇到,将输出输出变量。

已编辑

如果您想要变量或更好的数组中的值a,则可以执行以下操作:

a=($(awk -F\" '/sectorNumber/{x=$2 RS}/cellIdentity/{x=x $2 RS}/\<\/Sector/{printf x}' file))
echo ${a[0]}
3
echo ${a[1]}
1
echo ${a[2]}
461
echo ${a[3]}
465

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章