Remplacement avec 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'aimerais faire un remplacement sur 100 lignes de la valeur du parametres vlanId ci-dessous 3 par 6 dans l'objet VLANIF-1

et pour VLANIF-2 le parametre vlanId 30 par 31.




<managedObject class="com:VLANIF" version="" distName="11036/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-1" operation="update">
<p name="vlanId">3</p>
</managedObject>



<managedObject class="com:VLANIF" version="" distName="11036/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-2" operation="update">
<p name="vlanId">30</p>
</managedObject>


merci d'avance.

A voir également:

8 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ awk '/VLANIF-1/ {n=6} /VLANIF-2/ {n=31} /vlanId/ {sub(">[0-9]+<", ">" n "<")} {print}' fichier
<managedObject class="com:VLANIF" version="" distName="11036/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-1" operation="update">
<p name="vlanId">6</p>
</managedObject>

<managedObject class="com:VLANIF" version="" distName="11036/TNL-1/ETHSVC-1/ETHIF-1/VLANIF-2" operation="update">
<p name="vlanId">31</p>
</managedObject>
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour Dubcek

Merci pour ton retour , c'est Parfait.

Thank you
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Dubcek,

pour la regular expression
">[0-9]+<"
que dois je mettre s'il s'agit d'addresse IP a la place d'un nombre entier.

Cdlt.
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Dubcek,

le meme exemple ma je dois remplacé des addresse IP


<managedObject class="IPIF" distName="10048/TNL-1/IPNO-1/IPIF-1" operation="create" version="16.1">
<p name="ipMtu">1500</p>
<p name="interfacePtr">ETHIF-1/VLANIF-1</p>
<list name="ipAddrList">
<item>
<p name="ipAddrIdentifier">1</p>
<p name="localIpAddr">10.2.1.0</p>
<p name="localIpPrefixLength">28</p>
</item>
</list>
</managedObject>


mon exemple::

awk '/IPIF-1/ {n="1.0.0.0"} /localIpAddr/ {sub(">[0-9].[0-9].[0-9].[0-9]+<", ">" n "<")} {print}'  fichier


et je n'obtient pas de changement.

merci pour ton support.

BR
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
essayer
$ awk '/IPIF-1/ {n="1.0.0.0"} /localIpAddr/ {sub(">[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+<", ">" n "<")} {print}'  fichier
0

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

Posez votre question
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
Hello dubcek,

Merci bcp c'est impeccable

BR
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
Hello Dubcek,

Stp et dans le cas ou j'ai plusieurs IP a modifier dans le même object IPIF-1 comment dois-je procéder. voir l'exemple



awk '/IPIF-1/ {n="1.0.0.0"} {n="1.0.0.2"} /localIpAddr/ {sub(">[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+<", ">" n "<")} {print}' fichier



<managedObject class="IPIF" distName="10048/TNL-1/IPNO-1/IPIF-1" operation="create" version="16.1">
<p name="ipMtu">1500</p>
<p name="interfacePtr">ETHIF-1/VLANIF-1</p>
<list name="ipAddrList">
<item>
<p name="ipAddrIdentifier">1</p>
<p name="localIpAddr">10.0.0.0</p>
<p name="localIpPrefixLength">28</p>
</item>
<item>
<p name="ipAddrIdentifier">1</p>
<p name="localIpAddr">10.0.0.2</p>
<p name="localIpPrefixLength">28</p>
</item>
</list>
</managedObject>
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
avec un tableau
$ awk '/IPIF-1/ {n=1; t[1]="1.0.0.0"; t[2]="1.0.0.2"} /localIpAddr/ {sub(">[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+<", ">" t[n++] "<")} {print}'  fichier 
<managedObject class="IPIF" distName="10048/TNL-1/IPNO-1/IPIF-1" operation="create" version="16.1">
<p name="ipMtu">1500</p>
<p name="interfacePtr">ETHIF-1/VLANIF-1</p>
<list name="ipAddrList">
<item>
<p name="ipAddrIdentifier">1</p>
<p name="localIpAddr">1.0.0.0</p>
<p name="localIpPrefixLength">28</p>
</item>
<item>
<p name="ipAddrIdentifier">1</p>
<p name="localIpAddr">1.0.0.2</p>
<p name="localIpPrefixLength">28</p>
</item>
</list>
</managedObject>
0
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
Bnsoir Dubcek,

c est Parfait!!

Merci encore une fois pour ton aide.

Cdlt.
0