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

Linux Discussion :

Commande pour modifier une occurence dans plusieurs fichiers


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 37
    Points : 22
    Points
    22
    Par défaut Commande pour modifier une occurence dans plusieurs fichiers
    Bonjour,

    Connaitriez vous une commande ou soft qui permet de modifier une occurence dans plusieurs fichiers ?

    Par exemple j'aimerai changer le nom d'un define dans tout les fichiers de mon projet.

    Merci pour votre aide !

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 469
    Points
    19 469
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ... -exec sed 's/anc/nouv/g' '{}' \;
    ou, simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/anc/nouv/g' /chem1/*.ext /chem2/*.ext
    ...
    ?

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ... -exec sed 's/anc/nouv/g' '{}' \;
    ou, simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/anc/nouv/g' /chem1/*.ext /chem2/*.ext
    ...
    ?
    Hum... ça va être changé à l'écran, pas dans les fichiers.

    Pas de miracle. Faut créer la commande qui fait la modif sur un fichier et appliquer ladite commande sur tous les fichiers en question.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 469
    Points
    19 469
    Par défaut
    Citation Envoyé par Sve@r
    Hum... ça va être changé à l'écran, pas dans les fichiers.
    Oups ! J'ai oublié l'option -i pour sed, qui n'est disponible que pour GNU/sed.

    La commande find ... -exec ne fonctionnera aussi simplement qu'avec cette version.

    Pour les versions non-GNU de sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ... -exec bash -c 'sed 's/anc/nouv/g' "$1" > "$1.tmp"; mv "$1.tmp" "$1"' '{}' '{}' \;
    ou, de la même manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for file in /chem1/*.ext /chem2/*.ext
    do sed 's/anc/nouv/g' "$file" > "$file.tmp"
       mv "$file.tmp" "$file"
    done

Discussions similaires

  1. Commande pour remplacer une ligne dans un fichier.txt
    Par ludobspp dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 07/11/2013, 08h19
  2. commande pour supprimer une ligne dans un fichier
    Par bomonde dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 27/09/2010, 10h58
  3. code java pour modifier une ligne dans un fichier txt
    Par pacomou dans le forum Général Java
    Réponses: 1
    Dernier message: 03/09/2009, 15h23
  4. Réponses: 7
    Dernier message: 18/11/2007, 11h38
  5. commande pour insérer une table dans un fichier
    Par mix_35 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 13/03/2007, 20h22

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