Ajouter un pattern dans mon script AWK

Résolu
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -  
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai un script AWK pour extraire des données dans un fichier XML et je souhaiterais ajouté une commande qui me permettra de faire sortir un élément dans le output

le script

awk -F "[<>]" '/<p name="inventoryUnitType">/ {UT=$3} /<p name="serialNumber">/ {SN=$3} /<\/managedObject>/ {print UT ";" SN}'  monfichierXML


monfichierXML

 <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-1" id="4460207">
<p name="inventoryUnitType">FHEB</p>
<p name="serialNumber">1M171100064</p>
<p name="vendorName">N</p>
<p name="vendorUnitFamilyType">RRH2.3</p>
<p name="vendorUnitTypeNumber">47</p>
<p name="versionNumber">103</p>
</managedObject>
<managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-20732/HW-1/RMOD-2" id="4525297">
<p name="inventoryUnitType">FRMF</p>
<p name="serialNumber">F7181230100</p>
<p name="vendorName">N</p>
<p name="vendorUnitFamilyType">R3.2</p>
<p name="vendorUnitTypeNumber">47</p>
<p name="versionNumber">102</p>
</managedObject>


j'obtiens normalement


FHEB ; 1M171100064
FRMF ; F7181230100


et je souhaiterais avoir l'output ci-dessous avec mon code AWK

MRBTS-22111 ; FHEB ; 1M171100064
MRBTS-20732 ; FRMF ; F7181230100


Merci d'avance

Configuration: Windows / Chrome 81.0.4044.138

6 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ awk -F "[<>]" '/<managed/ {split($0, a, "/")} /<p name="inventoryUnitType">/ {UT=$3} /<p name="serialNumber">/ {SN=$3} /<\/managedObject>/ {print a[2] ";" UT ";" SN}' monfichierXML
    MRBTS-22111;FHEB;1M171100064
    MRBTS-20732;FRMF;F7181230100
    0
  2. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Dubcek,

    Merci pour ton retour malheureusement quand j'applique le code à fichier Global j'ai des doublon de Serial number,

    ça peut-être du à quoi STP?

    ci-dessous mon fichier global:

    <?xml version="1.0" encoding="UTF-8"?>
    <Inventory>
            <dateTime>202005101654+0000</dateTime>
            <InventoryUnitNE neType="MRBTS">PLMN-PLMN/MRBTS-22111</InventoryUnitNE>
            <InventoryUnitHw>
    <managedObject class="HW" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1" id="4460205">
          <p name="swVersion">fffggg</p>
          <p name="userLabel">ffff</p>
          <p name="vendorName">N</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-1" id="4460207">
          <p name="inventoryUnitType">FHEB</p>
          <p name="serialNumber">1M171100064</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.3</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">103</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-2" id="4460210">
          <p name="inventoryUnitType">FRMB</p>
          <p name="serialNumber">EA175062586</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.1</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">105</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-3" id="4460209">
          <p name="inventoryUnitType">FHEB</p>
          <p name="serialNumber">1M171438556</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.3</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">103</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-4" id="4460208">
          <p name="inventoryUnitType">FHEB</p>
          <p name="serialNumber">1M171438522</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.3</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">103</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-6" id="4460212">
          <p name="inventoryUnitType">FRMB</p>
          <p name="serialNumber">EA180260898</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.1</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">105</p>
        </managedObject>
        <managedObject class="RMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/RMOD-7" id="4460211">
          <p name="inventoryUnitType">FRMB</p>
          <p name="serialNumber">EA175062584</p>
          <p name="vendorName">N</p>
          <p name="vendorUnitFamilyType">RRH2.1</p>
          <p name="vendorUnitTypeNumber">4</p>
          <p name="versionNumber">105</p>
        </managedObject>
        <managedObject class="CABINET" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1" id="4460206">
          <p name="serialNumber">AS181304226</p>
        </managedObject>
        <managedObject class="BBMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/BBMOD-1" id="4460214">
          <p name="inventoryUnitType">Flexi Baseband Sub-Module FBBC</p>
          <p name="serialNumber">AS183163789</p>
          <p name="vendorUnitTypeNumber">472797A.101</p>
        </managedObject>
        <managedObject class="BBMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/BBMOD-2" id="4460215">
          <p name="inventoryUnitType">Flexi Baseband Sub-Module FBBC</p>
          <p name="serialNumber">AS172530111</p>
          <p name="vendorUnitTypeNumber">4</p>
        </managedObject>
        <managedObject class="SMOD" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/SMOD-1" id="4460213">
          <p name="inventoryUnitType">Flexi System Module Outdoor FSMF</p>
          <p name="serialNumber">AS181304226</p>
          <p name="vendorUnitTypeNumber">4</p>
        </managedObject>
        <managedObject class="SMOD_CORE" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/SMOD-1/SMOD_CORE-1" id="4460217"/>
        <managedObject class="FAN" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/SMOD-1/FAN-1" id="4460218"/>
        <managedObject class="FAN" version="HW1.0" distName="PLMN-PLMN/MRBTS-22111/HW-1/CABINET-1/SMOD-1/FAN-2" id="4460216"/>
        </InventoryUnitHw>
            <InventoryUnitSw>
    </InventoryUnitSw>
            <InventoryUnitLic>
    </InventoryUnitLic>
    </Inventory>
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    quel est le résultat attendu ?
    0
  4. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    Hello Dubcek,

    ci-dessous le résultat attendu pour le fichier Global, chaque unit type avec son Serial number en face.

    Merci

    MRBTS-22111;FHEB;1M171100064
    MRBTS-22111;FRMB;EA175062586
    MRBTS-22111;FHEB;1M171438556
    MRBTS-22111;FHEB;1M171438522
    MRBTS-22111;FRMB;EA180260898
    MRBTS-22111;FRMB;EA175062584
    MRBTS-22111;Flexi Baseband Sub-Module FBBC;AS183163789
    MRBTS-22111;Flexi Baseband Sub-Module FBBC;AS172530111
    MRBTS-22111;Flexi System Module Outdoor FSMF;AS181304226
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    $ awk -F "[<>]" '/<managed/ {split($0, a, "/")} /<p name="inventoryUnitType">/ {UT=$3} /<p name="serialNumber">/ {SN=$3} /<\/managedObject>/ && UT {print a[2] ";" UT ";" SN; UT=""}' monfichierXML
    MRBTS-22111;FHEB;1M171100064
    MRBTS-22111;FRMB;EA175062586
    MRBTS-22111;FHEB;1M171438556
    MRBTS-22111;FHEB;1M171438522
    MRBTS-22111;FRMB;EA180260898
    MRBTS-22111;FRMB;EA175062584
    MRBTS-22111;Flexi Baseband Sub-Module FBBC;AS183163789
    MRBTS-22111;Flexi Baseband Sub-Module FBBC;AS172530111
    MRBTS-22111;Flexi System Module Outdoor FSMF;AS181304226
    0
  7. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir Dubcek,

    Merci beaucoup, c est parfait
    0