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 :

Commande sed - Ligne vide


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut Commande sed - Ligne vide
    Bonjour à tous,

    J'éprouve quelques difficulté avec la commande sed:

    - J'ai un fichier texte toto.txt:

    Motif_1
    blabla
    qsdq
    qsd
    qds

    Motif_2
    sfdsdf
    sdfs
    sf
    sdfsd

    ...

    Je voudrais récupérer dans un fichier titi.txt uniquement ce qui est compris entre le motif_1 et la ligne vide suivante. Mon code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      sed -n '/'Motif_1'/,/^$/p' toto.txt > titi.txt
    Mais ce code me retourne la ligne du motif + la ligne suivante !
    Motif_1
    blabla

    Merci pour votre aide !

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Pourtant chez moi ça marche. Tu es bien sous Linux ? Les ranges (/pattern/,/pattern/) sont une extension Gnu, ça n'existe pas en sed standard.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    sous linux ça retourne ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Motif_1
    blabla
    qsdq
    qsd
    qds
    et je ne pense pas que c est ce qu'il veut.


    il veut peut etre récupérer que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    blabla
    qsdq
    qsd
    qds

  4. #4
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Bonjour,

    En utilisant sed, je vois pas comment faire sans un pipe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/'Motif_1'/,/^$/p' toto.txt | sed -n '/'Motif_1'/!p' > titi.txt
    Ce qui te retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    blabla
    qsdq
    qsd
    qds
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    Citation Envoyé par lavazavio Voir le message
    Bonjour,

    En utilisant sed, je vois pas comment faire sans un pipe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/'Motif_1'/,/^$/p' toto.txt | sed -n '/'Motif_1'/!p' > titi.txt
    Ce qui te retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    blabla
    qsdq
    qsd
    qds
    s'il le fait directement dans l'invite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/'Motif_1'/,/^$/p' toto.txt | sed -n '/'Motif_1'/\!p' > titi.txt

  6. #6
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Euh... oui, c'est pas ce que j'ai dit... ?
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    ouai
    sinon coincoin

Discussions similaires

  1. Commande sed, ligne trop longue
    Par zrobin dans le forum Unix
    Réponses: 1
    Dernier message: 12/07/2010, 18h45
  2. [Batch] Gestion de lignes vide avec la commande sed
    Par DeVit dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 20/10/2009, 19h06
  3. Commande sed : mon fichier de sortie est vide
    Par danyboy85 dans le forum Unix
    Réponses: 1
    Dernier message: 23/07/2009, 11h39
  4. extraire une partie de chaine avec une seule ligne de commande sed
    Par kinkichin dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 07/07/2009, 10h28
  5. La commande sed renvoie un fichier vide
    Par aaronw dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 29/09/2006, 11h46

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