Remplacer chaine de caractere

Résolu/Fermé
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 - 14 oct. 2009 à 17:06
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 14 oct. 2009 à 17:54
Bonjour,

Je souhaiterai remplacer le dernier octet d'un adresse IP à l'aide d'un script.
J'ai par exemple un fichier contenant

192.168.1.0
192.168.2.0
etc.

et j'aimerai qu'il devienne

192.168.1.253
192.168.2.253
etc.

je sais que je dois utiliser sed pour effectuer le remplacement mais comment faire comprendre que je dois remplacer la valeur après le 3eme point uniquement ?

Merci d'avance,

Vind'
A voir également:

2 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 895
14 oct. 2009 à 17:42
Salut,

[rep]$ cat plop
192.168.1.0
192.168.2.0

[rep]$ sed -i.bak 's/\(.*\.\).*/\1253/' plop

[rep]$ cat plop
192.168.1.253
192.168.2.253

[rep]$ 

;-))
0
vindicien Messages postés 131 Date d'inscription vendredi 6 mars 2009 Statut Membre Dernière intervention 22 février 2011 33
14 oct. 2009 à 17:46
Merci pour ta réponse !!
Je revenais cocher le sujet à "résolu" car j'ai finalement trouvé la réponse en bidouillant les expressions regulières...

sed -i 's/.[0-9]*$/.253/g' adresses.txt

Ca revient à peu près au même je pense...

Le principal étant que ça marche !!!

Merci tout de même ;-)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
14 oct. 2009 à 17:54
Le principal étant que ça marche !!!
C'est clair ;-))

Pour être plus précis et concis avec ta syntaxe :

 sed 's/[0-9]*$/253/'

0