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 :

[shell unix] Commande sed


Sujet :

Shell et commandes POSIX

  1. #1
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 224
    Points : 115
    Points
    115
    Par défaut [shell unix] Commande sed
    Bonjour à tous,

    Je cherche à faire une commande sed du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -e "s/(\"bin5\")/\"bin5\"/"    < fich_tmp1 > fich_tmp2
    Cette commande marche, il n'y a pas de problème.

    Par contre, ce que je voudrais faire à partir de cette commande, c'est une substitution d'une chaîne variable.
    Je m'explique, dans l'exemple ci-dessus je fais une substitution d'une chaîne ( "bin5" ) par "bin5". Comme vous le voyez c'est pour supprimer les parenthèses de la chaîne.
    Et je voudrais généraliser cette commande pour qu'elle s'effectue quelle que soit le nombre après bin.

    Donc qu'un ( "bin5" ) devienne "bin5"
    mais aussi qu'un ( "bin23" ) devienne "bin23"
    Etc...

    Quelqu'un aurait une petite idée ?
    Merci d'avance.

    Michel

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/(\( "bin[[:digit:]]*" \))/\1/g'

  3. #3
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 224
    Points : 115
    Points
    115
    Par défaut
    Tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/( \"\(bin.*\)\" )/\"\1\"/" < fich.tmp1 > fich.tmp2
    Il suffisait de bien chercher...

  4. #4
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 224
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/(\( "bin[[:digit:]]*" \))/\1/g'
    Plus rapide que moi... merci quand même j'ai trouvé...

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

Discussions similaires

  1. [Shell] plusieurs commandes sed simultanées dans un même script
    Par hakkio dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/12/2011, 14h40
  2. c shell + commande sed
    Par gaucher dans le forum Linux
    Réponses: 3
    Dernier message: 15/11/2007, 12h42
  3. c shell + commande sed
    Par gaucher dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 14/11/2007, 13h19
  4. La commande sed ne prend pas ma variable du shell
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 03/10/2006, 19h11
  5. Execution d'une commande Shell Unix
    Par boubakary dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 17/06/2006, 20h36

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