Extraire une partie de plusieurs fichiers de configuration et réaliser une synth
Résolu
bzhmickael35
Messages postés
4
Statut
Membre
-
bzhmickael35 Messages postés 4 Statut Membre -
bzhmickael35 Messages postés 4 Statut Membre -
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:
et j'aimerais obtenir:
Je pensais faire :
merci d'avance
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.txtmais n'arrive pas à faire grand chose, pouvez-vous m'aider ou me donner des pistes?
merci d'avance
A voir également:
- Extraire une partie de plusieurs fichiers de configuration et réaliser une synth
- Ethernet n'a pas de configuration ip valide - Guide
- Extraire une video youtube - Guide
- Panneau de configuration - Guide
- Extraire le son d'une vidéo - Guide
- Renommer plusieurs fichiers en même temps - Guide
5 réponses
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
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
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.
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.
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voila mon avancement, avec cette commande :
J’obtiens:
Merci à tous ceux qui m'ont aidé.
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é.