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 :

Remplacement sed de plusieurs lignes


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut Remplacement sed de plusieurs lignes
    Bonjour, voici mon problème j'ai un fichier avec plusieurs lignes.
    exple:
    toto
    tutu
    tata
    titi
    tutu
    tutu

    toto
    tutu

    J'aimerais changé les 2 tutu qui sont en rouges en toto.
    A chaque essai j'ai eu tous les tutu de changés.
    Est ce que quelqu'un pourrait m'aider?
    Merci

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    il faut ajouter un test de la ligne précédente contenant titi
    ou alors passer par la numerotation des lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat -n | sed .....................
    par exemple pour utiliser les numerotations.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    Peux tu être un peu plus explicite ?

    Ce que je faisais jusqu'à present etait ceci


    cat monfichier.txt | sed -e "s/tutu/toto/" >monfichiertemp.txt

    Comme tu peux t'en douter ca me changeait tout les tutu en toto.

    Moi ce que je voudrait c'est limiter mon sed sur une partie de mon fichier

  4. #4
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Tu veux limiter sur quelle partie ? Avec quelle condition ?

    En fonction du numéro de ligne ? Ou parce que les deux tutu sont à côté ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut sed
    Bonjour,

    Pour cibler une partie du fichier du peux donner les deux adresses entre lesquelles la substitution va agir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat monfichier.txt | sed -e 3,6"s/tutu/toto/" >| monfichiertemp.txt
    ici les adresses spécifées sont les lignes 3 et 6. Mais bon, comme le remarque LLB, on ne connaît pas ton critère de sélection de cette partie du fichier.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 12
    Par défaut
    Mon critere de selection est qu'ils se trouvent entre titi et toto.
    Je ne connais pas à l'avance ou va se trouver les 2 titis il se peut qu'il y ait des lignes blacnhes entre chaque.

  7. #7
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /titi/,/toto/s/tutu/toto/

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/08/2012, 15h44
  2. [sed] Supprimer plusieurs lignes
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 02/09/2010, 14h06
  3. Cherche / remplace sur plusieurs lignes d'un contenu..
    Par filgoud dans le forum Langage
    Réponses: 13
    Dernier message: 07/06/2010, 09h59
  4. [sed] supprimer plusieurs chaines similaires sur la même ligne
    Par laloupiote dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 02/03/2010, 07h43
  5. Réponses: 2
    Dernier message: 05/09/2007, 22h10

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