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 :

sed et correspondance exacte du nombre de séquence d'un caractère


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut sed et correspondance exacte du nombre de séquence d'un caractère
    Bonjour,

    J'essaie d'afficher une partie d'une ligne qui se trouve deux lignes avant une autre ligne ne comportant que des astérisques (64 *) avec ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/E(CI)/{N;N;/\*\{64,\}$/{s/.*\(E.*\)/\1/;P}}' fichier2Jessy2
    (ça vous rappelle quelquechose? cf. le deuxième fichier de Jessy2), mais ça ne fonctionne pas.
    Si, par contre, je met \{63\}, ou toute autre valeur entre 23 et 63, alors sed récupère bien :
    E(CI)= -0.18528564071D+03
    E(CI)= -0.18529487742D+03
    E(CI)= -0.18530280563D+03
    E(CI)= -0.18530953458D+03

    Le code peut ne pas être correct, où est mon erreur?

    merci d'avance.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #2
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,
    Citation Envoyé par N_BaH Voir le message
    Le code peut ne pas être correct, où est mon erreur?
    Le problème c'est que dans l'exemple que tu donne (autre discussion), les plus longues lignes d'astérisques n'en comptent pas 64 mais 63.
    Rien d'étonnant donc à ce que
    (64 astérisques ou plus) ne fonctionne pas !
    Du coup, tu devrais plutôt avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      ... \*\{63\} ...
     
    # ou bien si le nombre n'est finalement pas fixe ;)
      ... \*\{23,63\} ...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut le retour charriot !
    Effectivement, pourtant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "***************************************************************" |wc -m
    64
    # alors que
    printf "***************************************************************" | wc -m
    63
    ?

    Ah, oui, ça m'avait échappé... 'echo' ajoute un passage à la ligne, qui est pris en compte par 'wc' !

    Mais alors, c'est la même chose lorsqu'on fait compter le nombre de caractères des lignes d'un fichier...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wc -m < testAstérisque
    64
    le retour à la ligne est compté par 'wc', comment l'éviter ?

    --
    grrr, c'est très désagréable de montrer qu'on ne sait pas compter quelques dizaines caractères ;-))
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre chevronné Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -n "....." | wc -m

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Ah, oui, aussi !

    Merci à tous deux.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/11/2009, 01h41
  2. RemoteBlast : nombre de séquences
    Par Jasmine80 dans le forum Bioinformatique
    Réponses: 4
    Dernier message: 30/04/2009, 12h26
  3. Récupérer un nombre dans une chaîne de caractères
    Par yougoudai dans le forum Général Python
    Réponses: 9
    Dernier message: 23/09/2007, 21h01
  4. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  5. Récuperer un nombre dans une chaine de caractère
    Par ColonelHati dans le forum C
    Réponses: 4
    Dernier message: 27/04/2005, 14h50

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