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 :

Modifier un texte dans les fichiers d'un répertoire


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Modifier un texte dans les fichiers d'un répertoire
    Bonjour
    Je suis à la recherche d'un petit script, qui me permettrait de parcourir tous les fichiers contenus dans un répertoire, même ceux des sous-répertoires, et de changer par exemple toto par titi lorsque toto apparait dans le fichier
    On m'a donné cette commande find . -type f -print | xargs grep toto pour voir là où apparaissait ce texte dans les fichiers du répertoire, mais vu le nombre d'occurence j'aimerait le modifier automatiquement
    Pour info je travaille sous AIX 5.2
    Merci pour votre aide !
    Florent

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    find te permet de trouver toutes les occurences d'un fichier/répertoire répondant à certains critères. Elle peut aussi prendre un paramètre à exécuter sur les fichiers trouvés si besoin.

    Trouve tout ce qui est de type fichier à partir du répertoire courant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type f -exec grep -l "toto" {} \;
    permet de trouver tout les fichiers contenant la suite de lettre "toto".

    Ensuite, il te faut trouver une commande permettant de remplacer une chaine par une autre dans un fichier. Ca se fait bien avec sed ou perl par exemple.
    Ensuite, il te suffira de lier le find et ta commande avec xargs pour effectuer le remplacement de manière systématique.

    Fais des essais dans un répertoire isolé, et postes ton code si tu n'y arrives pas.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Pourquoi ne pas faire directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -type f -exec sed -i 's/toto/titi/g' {} \;
    ? Le secret est dans l'option -i mais je ne sais pas si elle existe dans la commande sed d'AIX (connaissant vaguement le bousin, j'ai des doutes).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  4. #4
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    salut,
    Si tu as perl sous AIX :
    find ./dir/ -type f -name "*.txt" | xargs -n1 perl -pi -e "s/old/new/g"
    Voir les sujets :
    http://www.developpez.net/forums/sho...d.php?t=417509
    http://www.developpez.net/forums/showthread.php?t=98208

Discussions similaires

  1. Chercher un mot dans les fichiers d'un répertoire
    Par xavierdestev dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 31/03/2014, 17h38
  2. Réponses: 9
    Dernier message: 12/01/2012, 09h59
  3. [MySQL] Rechercher dans les fichiers d'un répertoire
    Par barose dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 22/05/2009, 11h09
  4. [DIA] Mauvaise place du texte dans les fichiers exportés EPS PSTricks
    Par mitch007 dans le forum Editeurs / Outils
    Réponses: 0
    Dernier message: 06/12/2007, 11h52
  5. [WinXP] rechercher du texte dans les fichiers
    Par arcane dans le forum Windows XP
    Réponses: 3
    Dernier message: 05/05/2006, 12h10

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