Remplacer chaine de caractere

[Résolu/Fermé]
Signaler
Messages postés
131
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
22 février 2011
-
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
-
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'

2 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
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]$ 

;-))
Messages postés
131
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
22 février 2011
33
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 ;-)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 888
Le principal étant que ça marche !!!
C'est clair ;-))

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

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