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

  1. #1
    Membre expérimenté
    Modifier tout les fichier comportant une chaine
    Bonjour,
    J'ai, dans une arboresence, plein de fichiers ayant la chaine SRV2003 (tous ne l'on pas). Je voudrais changer cette chaine en 192.168.0.1. Mais il y en a plein et faire ça à la main ça ne me dit pas trop.
    J'ai lu dans des message de vi4ever que vi avait une option -c qui permet de mettre une commande sans ouvrir l'éditeur. Je l'ai conjgué avec find, mais lorsque vi ne trouve pas la chaine, il me met un message et ouvre l'éditeur...
    Voyez-vous une autre solution ?

    merci

  2. #2
    Nouveau membre du Club
    tu peu faire un sed non?

  3. #3
    Membre expérimenté
    roooo comment n'y ai-je pas pensé
    merci, j'va essayé tout de suite

  4. #4
    Expert éminent sénior
    L'option -c de vi ouvre l'éditeur. Elle permet juste d'exécuter une commande après que tous les fichiers de configuration aient été traités (.vimrc, plugins et ftplugins dans le cas de vim).

    Sinon, perl est limite mieux que sed dans ma mesure où il permet d'éditer en ligne le fichier (sans passer par des fichiers intermédiaires)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Membre expérimenté
    oui c'est ça mon problème maintenant c'est qu'avec sed il faut rediriger vers un autre fichier
    Aurais-tu un petit exemple à copie/coller qui traite un fichier je m'en inspirerai
    merci

  6. #6
    Modérateur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/sh
    REP=`ls *.as`
     
    for i in $REP
    do
     
    	tempfic=`mktemp XXXXXX`
    	echo $i
    	cat $i | sed s/PWP/pwp/g > $tempfic
    	mv -v -f $tempfic $i
    	rm -v -f $tempfic
     
    done


    ce script remplace PWP en pwp dans tous les fichiers *.as
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  7. #7
    Membre expert
    Pire !!!

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    perl -pi -e 's/SRV2003/192\.168\.0\.1/g' *.conf


    remplace toutes les occurences de SRV2003 par 192.168.0.1 (attention aux anti-slashes) dans tous les fichiers .conf du répertoire ... 8)
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  8. #8
    Expert éminent sénior
    Tu es sûr pour les anti-slash dans la chaine avec laquelle on remplace ? Cela me parait bizarre et bien inutile.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #9
    Membre expérimenté
    cool merci beaucoup
    ça à l'aire de fonctionner...

    C'est trop fort, va falloir que je me mette à perl...

    merci pour le coup de pouce

  10. #10
    Membre expert
    Non, effectivement, ils ne sont pas indispensables ...

    Mais ils ne sont pas génants, non plus (à part à taper)

    Le principal, c'est que ça marche, et ça marche plutôt bien, pour un truc en une ligne 8) ...

    Je ne me pose plus la question de savoir ou j'en suis de mon expression rationnelle, je les mets toujours partout, maintenant ... On va dire que c'est un truc de fainéant qui ne veut pas réfléchir
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  11. #11
    Modérateur

    ça m'énerve le perl, ça parse comme un dieu.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux