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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    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
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    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.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    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
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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