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 :

Position d'une chaîne de caractères dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut Position d'une chaîne de caractères dans un fichier
    Bonjour,

    j'ai un fichier texte d'une cinquantaine de lignes et une chaine de caractères: par exemple "vive le vent".
    À partir d'un script bash, j'ai obtenu le nombre de fois où cette chaine de caractères apparait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="vive le vent"
    nb=$(sed "s/${chaine}/${chaine}\\n/g" temp | grep -c "${chaine}")
    J'ai aussi trouvé pour obtenir les numéros des lignes où cette expression apparaît
    Mais est-il possible, d'avoir la position de la chaine dans la ligne (colonne de début et colonne de fin). En fait, c'est surtout la colonne de fin qui m'intéresse.
    Cordialement

  2. #2
    Expert éminent

    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
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Bon déjà, concernant le nombre d'occurrence de ta chaîne, un petit grep -o "vive le vent" ton_fichier | wc -l me semblerait moins capilotracté et même que grep -oc "vive le vent" ton_fichier l'est encore moins, honte à moi

    Ensuite pour ce qui est de la colonne de fin, un truc du genre pourrait faire l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o ".*vive le vent" <<<${ligne} | wc -L
    Je te laisse déterminer chaque numéro de ligne (avec grep -n), l'extraire avec "sed", et la traiter
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2013, 19h17
  2. Réponses: 4
    Dernier message: 16/12/2009, 14h39
  3. Réponses: 0
    Dernier message: 19/01/2009, 10h00
  4. Retouver une chaîne de caractère dans un fichier
    Par thierrykammi dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 26/09/2008, 09h26

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