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 :

Sélectionner un champ à l'aide de la commande sed


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Par défaut Sélectionner un champ à l'aide de la commande sed
    Bonjour,

    Je dois réaliser un script csh qui permet de faire du traitement de texte.

    Mon problème c'est que je n'arrive pas à utiliser la commande sed pour sélectionner le texte qui m'intéresse et ensuite m'en resservir.

    Par exemple , dans la ligne:
    Festival Cité Métisse # 24 novembre 2012, Cholet aff222

    Je voudrai récupérer ce qu'il y a entre # et affXXX , chacune de mes lignes étant constituées de la même manière , l'idée ça serait donc de faire un sed , mais j'ai sans cesse une erreur de syntaxique.

    J'avais essayer ça mais ça ne marche pas : sed -e `\(^#\)` nomdufichier

    Voilà voilà , si quelqu'un maîtrise bien la commande sed et a une solution à mon problème, je suis preneur ^^.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Citation Envoyé par Moltico Voir le message
    Je voudrai récupérer ce qu'il y a entre # et affXXX ,
    Tu veux récupérer uniquement ce qu'il y a entre ou il faut inclure les 2 extrémités ?

    En gros tu veux # 24 novembre 2012, Cholet aff222 ou seulement 24 novembre 2012, Cholet ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Par défaut
    Seulement 24 novembre 2012, Cholet

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat fichier
    Festival Cité Métisse # 24 novembre 2012, Cholet aff222
     
    $ sed 's/.*#\(.*\)aff.../\1/' fichier
     24 novembre 2012, Cholet

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Citation Envoyé par Beginner.j Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/.*#\(.*\)aff.../\1/' fichier
    Perso, j'avais fait légèrement plus générique et en tenant compte des espaces : sed 's/.*# \(.*\) .*/\1/'

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est vrai que je n'ai pas pensé aux espaces qui seront affiché dans ma version.

    Par contre pourquoi n'utilises-tu pas "aff..." ou autre dans ton sed? S'il y a quelque chose derrière ça risque de poser problème non? Perso j'utilise au minimum les ".*" dans les sed pour ne pas avoir de surprises.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par Beginner.j Voir le message
    Par contre pourquoi n'utilises-tu pas "aff..." ou autre dans ton sed? S'il y a quelque chose derrière ça risque de poser problème non? Perso j'utilise au minimum les ".*" dans les sed pour ne pas avoir de surprises.
    Parce que je me fie à ce qu'a dit "Moltico" dans son post initial, à savoir
    Citation Envoyé par Moltico
    chacune de mes lignes étant constituées de la même manière
    Donc en toute logique l'espace avant affxxx est le dernier sur la ligne, et la gourmandise de ".*" ne devrait pas poser problème

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Parce que je me fie à ce qu'a dit "Moltico" dans son post initial, à savoir
    Donc en toute logique l'espace avant affxxx est le dernier sur la ligne, et la gourmandise de ".*" ne devrait pas poser problème
    Ca me fait penser que je n'avais pas prévu qu'il pouvais y avoir "aff" dans le texte du milieu. Mais la gourmandise de sed fait quand même marcher ma commande dans ce cas spécifique.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 7
    Par défaut
    Merci à vous , je comprends déjà mieux "sed" , et forcément si je n'utilise pas la bonne option ça ne peux pas aller :e .

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

Discussions similaires

  1. Besoin d'aide sur la commande sed
    Par veis dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 10/01/2013, 18h41
  2. [VB.NET] Sélectionner un champ, le mettre en surbrillance
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/09/2007, 21h11
  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, 09h22
  4. Réponses: 4
    Dernier message: 21/02/2006, 20h26
  5. Réponses: 2
    Dernier message: 14/04/2005, 22h57

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