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 :

[sed] Suppression chaine de caractère après une chaine fixe


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut [sed] Suppression chaine de caractère après une chaine fixe
    Bonjour,

    J'ai un problème qui va sûrement paraître simple pour certaines personnes, mais sur lequel je me casse la tête depuis un petit moment ... (^^)

    Je dois remplacer une chaîne de caractères (pouvant varier selon les fichiers), qui est après une chaine de caractères fixe.

    Exemple:

    Fichier 1:
    BANANE = 1234

    Fichier 2:
    BANANE = 5678

    Il faut que je remplace la chaine de caractère après (BANANE = ) par une autre (que je connais, prenons par exemple "Coucou").

    Quelqu'un saurait comment faire s'il vous plait ?

  2. #2
    Membre averti
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Points : 304
    Points
    304
    Par défaut
    sed 's/^BANANE = .*$/BANANE = Coucou/g' FILE ou j'ai pas compris un truc ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Merci
    C'est ça, merci beaucoup !

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/\(BANANE = \).*/\1coucou/' fichier
    le caractère de fin de ligne est inutile : .* ira jusqu'en fin de ligne; g est inutile : il n'y a qu'une seule substitution; la référence arrière \1, qui correspond au motif entre parenthèses protégées, permet de pas répéter le motif.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Optimisation
    Merci, c'est plus optimisé en effet !

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    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 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Pour le fun, 2 autres méthodes:

    via sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/\(^BANANE =\).*/s//\1 COUCOU/' file
    via gawk (faut que le fichier en entrée respecte les espaces):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gawk '/^BANANE =/ {$3="COUCOU"}1' file
    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2013, 17h21
  2. Extraire une chaine des caractères après tonkenizer.
    Par vierkjan dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 15/06/2012, 11h13
  3. Suppression de certains caractères dans une chaine
    Par Tchupacabra dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2007, 12h08
  4. Réponses: 2
    Dernier message: 13/02/2007, 11h46
  5. Réponses: 4
    Dernier message: 12/03/2006, 20h47

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