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

Linux Discussion :

remplace fonction sed joker


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 69
    Points : 41
    Points
    41
    Par défaut remplace fonction sed joker
    Hello All,

    J'essaie sans succes de remplacer un pattern dans un fichier txt, voici un exemple de fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    poMMe
    poMMe
    poTTe
    poTTe
    Voici ce que j'aimerais avoir en resultat :

    Voici ma fonction qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i "s/po[^ ][^ ]*e/[^ ][^ ]*/" "\pomme.txt"
    Mon probleme est quand j'utilise un "joker" je n'arrive pas a conserver le charactere aleatoire ; il me met des [^ ]* a la place.

    Auriez vous une idee ?

    Merci
    FS

  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,

    La partie droite de remplacement n'accepte pas les expressions régulières.
    En dehors d'un motif concret, la partie droite n'accepte que le caractère & (esperluette), les références arrières \1 (de 1 à 9) et les options \U,\u,\L,\l et \E.

    Pour ton exemple, voici quelques façons de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $ cat plop 
    poMMe
    poMMe
    poTTe
    poTTe
     
     
    $ sed 's/[[:lower:]]//g' plop 
    MM
    MM
    TT
    TT
     
    $ sed 's/po\(.*\)e/\1/' plop 
    MM
    MM
    TT
    TT
     
    $ sed 's/po\(..\)e/\1/' plop 
    MM
    MM
    TT
    TT
     
    $

Discussions similaires

  1. Remplacement avec Sed sur deux lignes successives
    Par Synack92 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 18/05/2014, 16h17
  2. [XL-2010] remplacer fonction indirect
    Par claire-abadie dans le forum Excel
    Réponses: 2
    Dernier message: 23/04/2014, 13h43
  3. Sed remplacement en fonction du contexte
    Par Odulo dans le forum Linux
    Réponses: 3
    Dernier message: 08/11/2010, 08h43
  4. shell avec peut être la fonction sed
    Par bigs3232 dans le forum Unix
    Réponses: 4
    Dernier message: 03/05/2010, 13h55
  5. Remplacement fonction aggregate pour php 5 (runkit)
    Par nean_j dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2008, 17h17

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