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 :

Utiliser sed avec contexte contenant des slash et des double quote + problème avec echo >>


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Points : 88
    Points
    88
    Par défaut Utiliser sed avec contexte contenant des slash et des double quote + problème avec echo >>
    Bonjour,
    j'aurais besoin de vos lumières pour créer un script :

    problème avec sed :

    il faudrait via la commande sed

    remplacer :

    rootDirectory="applications"

    par :
    rootDirectory="/usr/local/lib/crtmpserver/applications"

    dans un fichier (ici crtmpserer.lua)


    j'ai tenté un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i.BAK '/rootDirectory=/ s/"applications"/"/usr/local/lib/crtmpserver/applications"/' /usr/local/etc/crtmpserver/crtmpserver.lua
    mais sans succès.


    et un autre souci

    j'ai un dossier et un fichier portant le même nom

    et si je veux remplir le fichier avec un echo >> nomdufichier
    il me dit qu'il ne peut pas parce qu'il s'agit d'un dossier

    comment lui faire comprendre que c'est le ficher que je veux remplir et non le dossier

    merci

  2. #2
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Pour sed il suffit de remplacer le délimiteur de commande, qui par défaut est le slash (/), par un caractère quelconque ne se trouvant pas dans le motif de substitution. Par exemple avec le caractère "#" (dièse) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/motif/ s#/chemin/rep#/nouveau/chemin/rep/#' fichier
    A noter qu'il est aussi possible d'échapper les slashs, mais ça devient vite contraignant et assez indigeste

    A noter aussi que pour le délimiteur de motif (le "/motif/" dans mon exemple précédent), si l'on souhaite remplacer le délimiteur, il faut protéger le premier caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '\#motif# s#/chemin/rep#/nouveau/chemin/rep/#' fichier
    Concernant ton autre problème, il nous faudrait un exemple concret pour mieux cerner ta demande.
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 173
    Points : 88
    Points
    88
    Par défaut
    merci pour la réponse,
    effectivement en changeant le délimiteur cela fonctionne !!!

    pour l'autre problème

    j'ai un dossier qui s'appelle crtmpserver
    et juste à côté un fichier qui s'appelle crtmpserver

    si je fait echo "coucou" >>crtmpserver

    il me dit que echo ne fonctionne pas sur un dossier.

    alors que le fichier existe

  4. #4
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Renomme un des deux
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par markham Voir le message
    j'ai un dossier qui s'appelle crtmpserver
    et juste a coté un fichier qui s'appelle crtmpserver

    si je fait echo "coucou" >>crtmpserver

    il me dit que echo ne fonctionne pas sur un dossier.

    alors que le fichier existe
    Je suis extrêmement sceptique! J'aimerais bien savoir quel os permet d'avoir, dans le même répertoire, un fichier et un répertoire de même nom?????

    Les hypothèses que je vois sont:
    - les extensions ne sont pas affichées
    - l'un des deux possède un caractère "invisible"
    - autre?

    Dans les 2 cas, que se passe-t-il si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -d *crtmpserver* | od -c

Discussions similaires

  1. [XL-2007] Formulaire VBA problème avec cellules contenant des dates
    Par Sudeki dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/10/2013, 12h54
  2. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  3. Probléme avec requétes contenant des caractéres spéciaux
    Par dragonfly dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/11/2007, 17h20
  4. Problème avec requête contenant like
    Par keisha dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/08/2006, 20h23
  5. [EJB2.1 Entity] [CMP] Problème avec l'extraction de la collection des fk.
    Par Last newbie dans le forum Java EE
    Réponses: 1
    Dernier message: 24/12/2005, 16h48

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