Remplacement avec 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 - 19 oct. 2017 à 11:43
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 25 oct. 2017 à 01:46
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.

8 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
19 oct. 2017 à 13:33
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
19 oct. 2017 à 14:23
bonjour Dubcek

Merci pour ton retour , c'est Parfait.

Thank you
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
21 oct. 2017 à 11:18
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
21 oct. 2017 à 11:31
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
21 oct. 2017 à 13:10
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
21 oct. 2017 à 17:20
Hello dubcek,

Merci bcp c'est impeccable

BR
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
23 oct. 2017 à 11:03
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 oct. 2017 à 12:10
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
25 oct. 2017 à 01:46
Bnsoir Dubcek,

c est Parfait!!

Merci encore une fois pour ton aide.

Cdlt.
0