[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Script



Oups, désolé Nahliel, je t'ai répondu en privé au
lieu de passer par la mailing list. On la refait. :)

Le 22/05/2014 10:07, Nahliel Steinberg a écrit :
> Le 22/05/14 at  10:04, Francois Lafont a ecrit:
>> Le 22/05/2014 09:56, Nahliel Steinberg a écrit :
>>
>>> Non pas du tout, j'ai un fichier de configurattion cfg, qui contient un champ address : IP
>>
>> Ok, ça c'est le fichier "hosts.cfg". Mais pour changer les
>> IP, il te faut bien un « document » qui te dit cette IP là
>> il faudra la changer en ça, celle-ci en ça etc., non ?
>>
> 
> ;-) c'est logique

Plus haut, je te demande si tu disposes d'un fichier csv et tu me
réponds « Non pas du tout ». Et là, tu me dis que si... Bref,
pas tout compris. À moins que ce « document » en question ne soit
au format papier.

> J'ai déjà tout ça, c'est le remplacement qui me pose problème.

Pour le remplacement, tu as une piste avec le sed que j'ai donné
en exemple (je change les IP pour que ça soit aligné et plus
compréhensible) :

sed -ir \
    -e 's/10\.0\.0\.56/10\.0\.35\.40/g' \
    -e 's/10\.0\.0\.57/10\.0\.35\.41/g' \
hosts.cfg  # <---- au passage je m'étais planté ici,
           #       il s'agit du fichier hosts.cfg.

Avec la commande ci-dessus, l'IP 10.0.0.56 sera
remplacée par 10.0.35.40, l'IP 10.0.0.57 sera
remplacée par 10.0.35.41. Le tout de manière non interactive.

Les « . » sont échappés car en regex ils ont une signification
( « . » signifie « n'importe quel caractère »). Pour lui faire
perdre cette signification spéciale, on doit faire un échappement
(et du coup « \. » signifie « le caractère point »). Du coup,
les \. enlèvent un peu de lisibilité au sed mais bon avec les
regex...

En tout cas, je répète, si tu as déjà un fichier csv indiquant
les correspondances entre les anciennes IP et les nouvelles, il
ne faut pas s'embêter à faire un truc interactif à base de read
et de (300 !) saisies manuelles. Il faut faire un remplacement
automatique comme dans la commande ci-dessus. Le souci étant
de générer cette commande avec un script. En tout cas, c'est
la méthode qui me vient à l'esprit.

-- 
François Lafont


-- 
François Lafont


Reply to: