Ajouter un pattern dans mon script AWK

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - Modifié le 10 mai 2020 à 20:29
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 11 mai 2020 à 16:29
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
A voir également:

6 réponses

dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
11 mai 2020 à 10:53
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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
11 mai 2020 à 13:31
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
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
11 mai 2020 à 14:41
quel est le résultat attendu ?
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
11 mai 2020 à 15:09
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
11 mai 2020 à 15:52
$ 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
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
11 mai 2020 à 16:29
Bonsoir Dubcek,

Merci beaucoup, c est parfait
0