Menu

Extraire une partie de plusieurs fichiers de configuration et réaliser une synth [Résolu]

Messages postés
4
Date d'inscription
samedi 27 octobre 2018
Statut
Membre
Dernière intervention
10 décembre 2018
-
Bonjour à tous,

J'aimerais extraire une partie des mes fichiers de configuration et pouvoir en faire une synthèse.

Voici un extrait de mon fichier de conf:

interface GigabitEthernet0/1
shutdown
!
interface GigabitEthernet0/2
switchport trunk allowed vlan 3001-3009,4000,4001,4003,4004
switchport mode trunk
!
interface GigabitEthernet0/3
switchport trunk allowed vlan 400
switchport mode trunk
!
interface GigabitEthernet0/4
switchport trunk allowed vlan 771,791,802,827,838,844
switchport mode trunk
!
interface GigabitEthernet0/5
shutdown
!
interface GigabitEthernet0/6
switchport trunk native vlan 4005
switchport mode trunk
!
interface GigabitEthernet0/7
shutdown
!
...


et j'aimerais obtenir:

1 allowed : 
1 native :
2 allowed :3001,3002,3003,3004,3005,3006,3007,3008,3009,4000,4001,4003,4004
2 native :
3 allowed :400
3 native :
4 allowed : 771,791,802,827,838,844
4 native :
5 allowed :
5 native :
6 allowed :
6 native : 4005
7 allowed :
7 native :

....


Je pensais faire :
cat config.txt | grep ***** > resultat.txt
mais n'arrive pas à faire grand chose, pouvez-vous m'aider ou me donner des pistes?

merci d'avance
Afficher la suite 

Votre réponse

5 réponses

Messages postés
28814
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
10 mai 2019
8027
0
Merci
Bonjour,

Pour ce genre de script tu ne vais pas pouvoir t'en sortir en une commande, puisque tu dois retenir le numéro d'interface qui apparaît en début de ligne dans ton rapport. Tu ne pourras pas le faire en une commande shell.

Il faut donc écrire un script, dans le langage de ton choix (shell, python, awk...), le plus simple étant awk à mon avis dans le cas présent.
https://nyal.developpez.com/tutoriel/gawk/

Bonne chance
Commenter la réponse de mamiemando
Messages postés
17700
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 mai 2019
6077
0
Merci
hello
d'où vient le premier allowed ? le premier native ?
zipe31
Messages postés
36521
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 mai 2019
5785 -
Salut,

Il a aussi oublié de préciser que
3001-3009,4000,4001,4003,4004
doit devenir
3001,3002,3003,3004,3005,3006,3007,3008,3009,4000,4001,4003,4004
;-\
Commenter la réponse de dubcek
Messages postés
4
Date d'inscription
samedi 27 octobre 2018
Statut
Membre
Dernière intervention
10 décembre 2018
0
Merci
Bonjour,

Je vais regarder du coté des 'AWK',

''Il a aussi oublié de préciser que

3001-3009,4000,4001,4003,4004

doit devenir

3001,3002,3003,3004,3005,3006,3007,3008,3009,4000,4001,4003,4004

;-\ '

oui j'ai oublier de préciser, même si pour moi cela reste moins important que ma demande initiale.
zipe31
Messages postés
36521
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 mai 2019
5785 -
Tu n'as pas répondu à dubcek ;-\
Commenter la réponse de bzhmickael35
0
Merci
A moins de faire un script ou une commande complexe pour avoir exactement ce que tu veux, cette commande simple donne une bonne synthèse :

grep -e inter -e allow -e native fichier_de_conf


interface GigabitEthernet0/1
interface GigabitEthernet0/2
switchport trunk allowed vlan 3001-3009,4000,4001,4003,4004
interface GigabitEthernet0/3
switchport trunk allowed vlan 400
interface GigabitEthernet0/4
switchport trunk allowed vlan 771,791,802,827,838,844
interface GigabitEthernet0/5
interface GigabitEthernet0/6
switchport trunk native vlan 4005
interface GigabitEthernet0/7
Commenter la réponse de Thomas10_10
Messages postés
4
Date d'inscription
samedi 27 octobre 2018
Statut
Membre
Dernière intervention
10 décembre 2018
0
Merci
Voila mon avancement, avec cette commande :

grep -e interface\ gig -e allow -e native mon_fichier_de_conf.txt | awk -F " " '{ if ($1=="interface")  print  $2; else if ($3=="native") print "native:", $5; else if ($3=="allowed") print "allowed:", $6 } '


J’obtiens:

GigabitEthernet0/1
GigabitEthernet0/2
allowed : 3001-3009,4000,4001,4003,4004
GigabitEthernet0/3
allowed : 400
GigabitEthernet0/4
allowed : 771,791,802,827,838,844
GigabitEthernet0/5
GigabitEthernet0/6
native : 4005
GigabitEthernet0/7


Merci à tous ceux qui m'ont aidé.
Commenter la réponse de bzhmickael35