Bash sed ajout de ligne et capture de groupe [Résolu/Fermé]

Signaler
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
Bonjour,

partant d'un fichier interfaces :
iface lo inet loopback
auto lo

auto eth1
iface eth1 inet static
address 68.8.75.1
netmask 255.255.255.255
up route add default gw 88.190.65.1
dns-search      promodg.com
dns-nameservers 88.191.254.60 88.191.254.70



je souhaite ajouter une ligne au dessus de up route avec :

up route add 88.190.65.1 dev eth1


j'ai donc tenté :
sed -i.bak -e '/default gw \(.*\)$/i \up route add \1 dev eth1' interfaces


malheureusement la capture ne fonctionne pas, il met 1 au lieu de l'ip ...

qu'ai-je donc raté ?

Merci d'avance !

Stéphane

1 réponse

Messages postés
36271
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 janvier 2021
5 850
Salut,

Essaie comme ça :

$ cat plop 
iface lo inet loopback
auto lo

auto eth1
iface eth1 inet static
address 68.8.75.1
netmask 255.255.255.255
up route add default gw 88.190.65.1
dns-search      promodg.com
dns-nameservers 88.191.254.60 88.191.254.70

$ sed '/^up/{s/^\(up.* \)\(.*\)$/up route add \2 dev eth1\n\1\2/}' plop
iface lo inet loopback
auto lo

auto eth1
iface eth1 inet static
address 68.8.75.1
netmask 255.255.255.255
up route add 88.190.65.1 dev eth1
up route add default gw 88.190.65.1
dns-search      promodg.com
dns-nameservers 88.191.254.60 88.191.254.70

$

2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
merci !