Bash sed ajout de ligne et capture de groupe

Résolu/Fermé
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 15 juil. 2013 à 17:34
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 17 juil. 2013 à 18:11
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
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 408
16 juil. 2013 à 16:39
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
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
17 juil. 2013 à 18:11
merci !
0