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 :

difficulté commande sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut difficulté commande sed
    Bonsoir,
    je trouve du mal à resoudre une question qui parait simple.
    Question:
    on nous demande d'afficher seulement ce qui est entre <CITE> et </CITE>.

    fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <P> Bonjour. Il faut lire <CITE>The Practice of Programming</CITE>
    de Kernighan et Pike. 
    </P>
    mon essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -r '/<CITE>/,/</CITE>/!d' fichier
    et j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sed -r 'A<CITE>A,A</CITE>A!d' fichier
    pour éviter la confusion avec le / de </CITE> et ça marche toujours pas.

    Je comprends pas c'est ou l'erreur pourtant < ou >
    ne sont pas des caractères spéciaux et on n'a pas besoin de mettre un anti-slash devant ces caractères à mon avis.


    Bienvenue à toute réponse et merci d'avance.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<P> Bonjour. Il faut lire <CITE>The Practice of 
    Programming</CITE> de Kernighan et Pike. 
    </P>" |sed -rn '\@<CITE>@,\@</CITE>@{N;s/\n/ /}; s/.*<CITE>(.*)</CITE>.*/\1/p'
    The Practice of  Programming
    cf. sed1lignes
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    J'ai une autre solution, qui ne répond pas à la question puisque j'utilise awk, mais qui me semble intéressante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F "<CITE>|</CITE>" {print $2}' fichier
    Attention toutefois, j'ai fait au plus simple et ce n'est pas très robuste: Si la balise de fin arrive avant la balise de début, ça marche alors que ça ne devrait pas. S'il y a plusieurs fois les balises sur une même ligne, seule la première occurence sera affichée. Mais le principe est pas mal, je trouve.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    je vous remercie pour vos reponse, mais j'arrive pas à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/<CITE>/,/<\/CITE>/{N;s/\n//} ; s/.*<CITE>\(.*\)<\/CITE>.*/\1/p' fichier
    pour que ça s'applique à toutes les ligne ou se trouve <CITE> et </CITE>

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    ...comprend pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <P> Bonjour. Il faut lire <CITE>The Practice of
    Programming - 1</CITE> de Kernighan et Pike.
    </P><P> Bonjour. Il faut lire <CITE>The Practice of
    Programming - 2</CITE> de Kernighan et Pike.
    </P><P> Bonjour. Il faut lire <CITE>The Practice of
    Programming - 3</CITE> de Kernighan et Pike.
    </P>
    <P> Bonjour. Il faut lire <CITE>The Practice of
    Programming - 4</CITE> de Kernighan et Pike.
    </P> |sed -rn '\@<CITE>@{N;s/\n/ /; s/.*<CITE>(.*)<\/CITE>.*/\1/p}'
    The Practice of  Programming - 1
    The Practice of  Programming - 2
    The Practice of  Programming - 3
    The Practice of  Programming - 4
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Merci N_BaH, justement j'ai essayé avec et exemple et ça pas marché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <HTML><HEAD><TITLE>Test2</TITLE></HEAD><BODY>
    Bonjour. Il faut lire <CITE>The Practice of Programming </CITE>
    de Kernighan et Pike. Le premier auteur a aussi &eacute;crit 
    <CITE> The C programming language</CITE>. </BODY></HTML>
    il m'affiche seulement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The Practice of Programming
    pourtant il doit m'afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    The Practice of Programming
     The C programming language

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Qu'attends-tu qu'il s'affiche ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    Si je me trompe pas il m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    The Practice of Programming
     The C programming language
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The Practice of Programming

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 654
    Par défaut
    Bon, bah, là, je sais plus : en trois minutes, tu dis une chose et son contraire...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 31
    Par défaut
    non ce n'est pas ça, je me suis trompé pour au début et je me suis rendu compte que après avoir vu votre réponse.

    Je vous remercie N_BaH et jmelyn. Vos réponses m'ont aidé à avancer et c'est le but.

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

Discussions similaires

  1. 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
  2. Problème avec la commande sed
    Par JUSTIN Loïc dans le forum Linux
    Réponses: 2
    Dernier message: 05/09/2006, 10h17
  3. Aide sur les commandes sed et awk
    Par elkhy dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 20/06/2006, 08h22
  4. La commande sed
    Par ajsd0208 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 26/04/2006, 14h34
  5. Commande SED
    Par pierregag dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 17/03/2006, 12h51

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