Remplacer chaine de caractere

Résolu
vindicien Messages postés 136 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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'
Configuration: Windows XP
Firefox 3.5.3

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. vindicien Messages postés 136 Statut Membre 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 ;-)
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      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