IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Remplacement d'une IP avec sed


Sujet :

Shell et commandes GNU

  1. #1
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut Remplacement d'une IP avec sed
    Voila j'ai changer d'hébergement pour un dédié, et j'dois remplacer toutes les IP pour bind dans une 30ene de fichiers de config.


    J'ai pense a faire un Find + Sed mais j'ai un leger probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     find . -name "db.*" -exec sed ss@oldid@nouvelleip@g" {} > {}  \;
    => Ca ne marche pas, apparement sed n'aime pas lire / ecrire sur un meme fichier ( normal ).

    J'ai voulu faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     find . -name "db.*" -exec sed "s@82\.192\.74\.174@213.251.173.153@g" {} > new\/{}  \;
    Afin d'ecrire les fichiers de sortie dans un réperotire "new".

    Mais résultat, j'ai un seul fichier ... qui porte le nom "{}".

    Donc j'aimerai savoir s'il y a un autre moyen d'effecture ce que je cherche a faire ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par Hikage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     find . -name "db.*" -exec sed "s@82\.192\.74\.174@213.251.173.153@g" {} > new\/{}  \;
    Mais résultat, j'ai un seul fichier ... qui porte le nom "{}".
    C normal tu fait une redirection vers le rep new et le fichier "{}".
    Je te conseil de faire une boucle du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for file in `find . -name "db.*"`
    do
    sed "s@82\.192\.74\.174@213.251.173.153@g" $file > ./new/$file.new
    done
    Amine

  3. #3
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Thkx
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insérer une ligne avec sed
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 28/06/2007, 14h08
  2. [RegEx] Remplacement dans une chaine avec PHP, possible ou impossible ?
    Par mf412 dans le forum Langage
    Réponses: 1
    Dernier message: 10/05/2007, 13h40
  3. probleme remplacement chaine de caractere avec SED
    Par rhaamo dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 24/01/2007, 15h12
  4. [Regex] Remplacement d'une chaîne avec $
    Par TSnarfK dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/01/2006, 10h44
  5. Extraire une valeur d'une ligne avec sed
    Par jojolepabo dans le forum Linux
    Réponses: 6
    Dernier message: 27/10/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo