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 POSIX Discussion :

[Sed] remplacement d'un # par \ -> fichier vide :? [Solaris]


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut [Sed] remplacement d'un # par \ -> fichier vide :?
    Hello,

    dans mon script, j'ai la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "s%#%\/%g" ${entree} > ${entree}_tmp
    Qui doit, dans un fichier xml de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bal ... chemin="#." ... />
    Remplacer le dièse par un backslash.

    Pourtant, mon fichier en sortie est ... vide.

    Je m'arrache les cheveux sur cette commande, là je vois pas d'où ça peut venir.

    Quelqu'un aurait une idée?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    D'une part utiliser des quotes simples et puis penser à protéger le backslash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo '<bal ... chemin="#." ... />' | sed 's%#%\\%'
    <bal ... chemin="\." ... />

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    Hello,

    pour être sûr que ça ne vienne pas du #, j'ai maintenant dans mon xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bal ... chemin="####." ... />
    Les #### qu'il faut remplacer par un /

    Avec :
    Toujours pareil, fichier vide en sortie :/

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    Je sais pas si c'est lié, mais le serveur est sous SOLARIS.

    La même commande testée sur le même fichier en local sur cygwin fonctionne bien.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Oups désolé, j'ai confondu backslah et antislash

    Sinon, perso je n'ai toujours pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo '<bal ... chemin="#####." ... />' | sed "s%#\+%/%"
    <bal ... chemin="/." ... />

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    Je viens de remarque que si mon xml en entrée a son contenu sur une seule ligne ( non formatté) , niet, fichier en sortie vide.

    Par contre si mon xml est formatté ( plusieurs lignes ), ça fonctionne


    Solution de contournement trouvée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo `cat ${xml}` | sed 's%####%/%g' > ${xml}_tmp

    Bizarre, moche, mais seule solution là :o

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 352
    Par défaut
    Bonjour,
    Tu es peut-être dans ce cas là (extrait man sed solaris):
    The sed utility is a text editor. It cannot edit binary
    files or files containing ASCII NUL (\0) characters or very
    long lines.
    Pourrais-tu voir ce que la commande suivante te retourne:
    Avec ${xml} la variable qui contient le nom du fichier bien sur.

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

Discussions similaires

  1. firefox 4 - Remplacer l'icone par un fichier PNG
    Par byloute dans le forum Firefox
    Réponses: 7
    Dernier message: 10/06/2012, 07h47
  2. Sed : Remplacement de chaines par d'autres avec des caractères spéciaux
    Par argoet dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 28/09/2011, 12h50
  3. remplacer un pattern par un fichier php
    Par totof49 dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2009, 18h52
  4. [POO] Remplacement de texte par un fichier
    Par poussinphp dans le forum Langage
    Réponses: 2
    Dernier message: 08/05/2008, 15h48
  5. Réponses: 2
    Dernier message: 03/04/2008, 16h05

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