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 :

Utilisation de sed


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Directeur Technique
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur Technique

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Utilisation de sed
    Bonjour,
    J'ai un fichier, disons fichier.txt, qui contient les données suivantes :

    [s_m_1]
    $$mois=200702

    [s_m_2]
    $$mois=200702

    Je voudrai le modifier par une ligne de commande afin qu'il contienne les données suivantes :

    [s_m_1]
    $$mois=200702

    [s_m_2]
    $$mois=200703

    J'ai cherché comment faire ça avec la commande sed mais je ne suis pas un spécialiste du shell et je bute une peu...
    Quelqu'un pourrait-il me donner un coup de main ?
    Merci d'avance !

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Citation Envoyé par p1erstef
    [s_m_1]
    $$mois=200702

    [s_m_2]
    $$mois=200702

    En utilisant le n° de ligne, tu peux faire :

    sed -i '5s/02$/03/' fichier

    Nota : -i en bash (pas ksh)



    Par rapport à l'etiquette [s_m_2], avec awk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    awk '
    {
    if ($0 ~ /^\[s_m_2\]/) {
    	print $0
    	getline
    	sub(/02$/,"03",$0)
    }
    print $0
    }
    ' fichier.txt > resultat.txt

  3. #3
    Futur Membre du Club
    Profil pro
    Directeur Technique
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Directeur Technique

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci BlaireauOne,

    C'est exactement ce qu'il me fallait.
    Grâce à la commande awk et à l'exemple d'utilisation que tu donnes, j'ai pu arriver à faire ce que je voulais !

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

Discussions similaires

  1. Utilisation de sed avec les variables dans un Shell
    Par mbole dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/07/2007, 17h46
  2. [SHELL] utilisation de sed
    Par VincentG dans le forum Linux
    Réponses: 5
    Dernier message: 07/05/2007, 09h07
  3. Utilisation de SED
    Par crazykangourou dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 08/12/2006, 17h26
  4. Utilisation de sed
    Par mauzillon dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/09/2006, 10h46
  5. Utilisation de sed
    Par paco69 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/07/2006, 16h13

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