A voir également:
- Modification d'un fichier texte en bash
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Suivi de modification word - Guide
7 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
5 mai 2008 à 14:25
5 mai 2008 à 14:25
Salut,
Si j'ai bien compris, tu veux inverser les champs "MODE" en fonction du résultat de ta requête sur l'adresse MAC ?
En partant de ton exemple, voilà une solution pour le faire (rajouter l'option '-i.bak' pour une modification effective du fichier original et la création d'une copie de sauvegarde avec extension ".bak") :
Si j'ai bien compris, tu veux inverser les champs "MODE" en fonction du résultat de ta requête sur l'adresse MAC ?
En partant de ton exemple, voilà une solution pour le faire (rajouter l'option '-i.bak' pour une modification effective du fichier original et la création d'une copie de sauvegarde avec extension ".bak") :
[tmpfs]$ cat vlan ... VLAN ( NAME=DEFAULT_VLAN PORT_MAP=ffffff000000 MODE=222222 ) VLAN ( NAME=test PORT_MAP=ffffff000000 MODE=------ ) ... [tmpfs]$ sed '/DEFAULT_VLAN/{n;n;s/\(MODE=\).*/\1------/};/test/{n;n;s/\(MODE=\).*/\1222222/}' vlan ... VLAN ( NAME=DEFAULT_VLAN PORT_MAP=ffffff000000 MODE=------ ) VLAN ( NAME=test PORT_MAP=ffffff000000 MODE=222222 ) ... [tmpfs]$;-))
C'est exactement ça !!
Il me suffit juste de modifier tel ou tel "port" pour coller à ce dont j'ai besoin.
Merci beaucoup!!!!
Il me suffit juste de modifier tel ou tel "port" pour coller à ce dont j'ai besoin.
Merci beaucoup!!!!
J'ai une question rapport à ta commande. Si je ne souhaite modifier que le 5 caractère par exemple ( le deuxième '2' de vlan default en '-'), il me suffit d'utiliser les expressions régulières?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
5 mai 2008 à 15:05
5 mai 2008 à 15:05
[tmpfs]$ sed '/DEFAULT_VLAN/{n;n;s/2/-/2};/test/{n;n;s/-/2/5}' vlan
...
VLAN (
NAME=DEFAULT_VLAN
PORT_MAP=ffffff000000
MODE=2-2222
)
VLAN (
NAME=test
PORT_MAP=ffffff000000
MODE=----2-
)
...
[tmpfs]$;-))
...
VLAN (
NAME=DEFAULT_VLAN
PORT_MAP=ffffff000000
MODE=2-2222
)
VLAN (
NAME=test
PORT_MAP=ffffff000000
MODE=----2-
)
...
[tmpfs]$;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bizarre, cette commande devrai marcher non?
sed '/DEFAULT_VLAN/{n;n;s/\(MODE=\)./\1-/5};/test/{n;n;s/\(MODE=\)./\12/5}' vlan
sed '/DEFAULT_VLAN/{n;n;s/\(MODE=\)./\1-/5};/test/{n;n;s/\(MODE=\)./\12/5}' vlan
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
6 mai 2008 à 09:22
6 mai 2008 à 09:22
Ben non.
Si tu veux juste changer le 5ème caractère se trouvant après le signe égale, il te faut employer la syntaxe donnée dans mon précédent message...
Si tu veux juste changer le 5ème caractère se trouvant après le signe égale, il te faut employer la syntaxe donnée dans mon précédent message...