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 :

ajout d'une tabulation avec SED


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 25
    Par défaut ajout d'une tabulation avec SED
    Bonjour,

    Après avoir cherché un peu d'information, j'ai pu réaliser un script qui ajoute automatiquement une tabulation+une chaine de caractère après chaque motif trouvé, mais j'ai un bug que j'arrive pas à corriger...

    Explication, j'ai un fichier texte (test.txt) avec les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monexempleamoi.pouet
    encoreunexemple.pouet
    desexemplesencore.pouet
    je veux ajouter une tabulation+TOTO pour que cela donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monexempleamoi.pouet	TOTO
    encoreunexemple.pouet	TOTO
    desexemplesencore.pouet	TOTO
    j'utilise la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 's/.pouet/.pouet\t\TOTO/g' test.txt
    Cela fonctionne globalement bien, mais j'ai de temps en temps des choses comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .pouet     TOTOalors.pouet    TOTO
    La ligne d'origine étant:



    Donc je pense que ma commande SED est foireuse et ne prend pas en compte le caractère "."

    Une idée ?

    Merci de vos aides

  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,

    Il faut protéger le "." (\.) sinon il est vu non pas littéralement comme un point, mais comme n'importe quel caractère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/\.pouet/&\tTOTO/'
    Pour économiser de l'énergie, comme tu veux remettre le motif matché, autant employer le méta-caractère "&" (esperluette) en remplacement, c'est fait pour, autant s'en servir

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 25
    Par défaut
    ça marche impeccable
    merci zipe31

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

Discussions similaires

  1. Remplacement d'une IP avec sed
    Par Hikage dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/07/2006, 16h34
  2. [VBA-E] ajout d'une ligne avec ordre alphabétique
    Par Yaone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/04/2006, 16h52
  3. comment je peux faire une tabulation avec Enter
    Par iam dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/04/2006, 20h41
  4. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 08h27
  5. Extraire une valeur d'une ligne avec sed
    Par jojolepabo dans le forum Linux
    Réponses: 6
    Dernier message: 27/10/2004, 09h34

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