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 :

Changer des chaînes de caractères dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut Changer des chaînes de caractères dans un fichier
    Bonjour

    Voici où j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ cp -f index.php test.php;sed -e 's/"//xorg.conf/"xorg.conf/g' test.php
    cp: écraser `test.php'?y
    sed: -e expression n°1, caractÚre 6: option inconnue pour `s'
    Je suis face à deux problèmes :
    Le premier pas grave, ne comprend pas l'option -f du cp (histoire de ne pas casser mon fichier source)
    Le second, le centre du problème, je ne connais pas bien l'utilisation de sed et il me semblerais que je devrais faire comme ça pour que ça marche, mais ce n'est pas bon
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Salut
    Permier problème :
    tu peux toujours supprimer le fichier test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rm -f test.php 2>/dev/null
    ou utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yes |  cp index.php toto.php >& /dev/null
    Second problème :
    La syntaxe sed n'est pas bonne si tu veux supprimer le / devant xorg.conf, il faut ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -e 's/"\/xorg.conf/"xorg.conf/g'
    Sed écrit sur la sortie standard il te faudra donc la rediriger vers un fichier

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Merci !

    Mon problème est résolu, mais j'en profite pour poser d'autres questions
    Pourquoi ce /g} que je trouve toujours à la fin du bloc de commande de sed ?

    Pourquoi
    Code man cp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           -f     Effacer les fichiers cibles existants (voir ci-dessus).
    [...]
           -f, --force
                  Effacer les fichiers cibles existants au cas où une ouverture en
                  écriture  échoue  et  ne  jamais  demander confirmation.  (C'est
                  ainsi depuis file-utils 4.1. Avec file-utils 4.0,  cette  option
                  était équivalent à la nouvelle --remove-destination.)
    ?
    Comment on peut se servir de ce -f ? Toi, tu le shuntes ce problème
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Maintenant, j'aimerai mettre ça dans un script qui remplace xorg.conf par un variable $1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `echo "sed -e 's/\"\/$1/\"$1/g' \"$racine_developpez/cache/$1/index.php\" > \"$old_pwd/$1/index.php\""`
    Ceci génère bien la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/"\/xorg.conf/"xorg.conf/g' "/home/bs/developpez.com/cache/xorg.conf/index.php" > "/home/bs/developpez.com/site/Linux/serveurX/xorg.conf/index.php"
    Mais il y a aussi cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed: -e expression n°1, caractÚre 1: commande inconnue: `''
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Voici la réponse pour le sed automatique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    `echo "sed -e {s@\"/$1@\"$1@g} $racine_developpez/cache/$1/index.php"` > "$old_pwd/$1/index.php"
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

Discussions similaires

  1. [XL-2003] Découper des chaînes de caractère d'un fichier et les stocker dans un tableau
    Par -Naek- dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 18h24
  2. Réponses: 6
    Dernier message: 15/05/2008, 15h20
  3. [16F876] Ecrire des chaînes de caractères dans un tableau
    Par aminousse dans le forum Autres architectures
    Réponses: 0
    Dernier message: 01/03/2008, 01h08
  4. Réponses: 7
    Dernier message: 27/04/2007, 10h01

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