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 :

lecture d'un fichier ligne par ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut lecture d'un fichier ligne par ligne
    Bonjour,

    j'ai une valeur "toto". Je souhaite rechercher dans un fichier X.txt, si cette valeur toto existe.

    Pour cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Fichier=$(cat X.txt)
     
    for UneLigne in $Fichiers
    do
      LuCle=$(echo $[UneLigne} | cut -d";" -f1)
           while [ "toto" != "${LuCle} ]
           do
                  if  [ "toto" = "${LuCle} ] ; then
                        echo "OK"
                   else
                        Uneligne +1
                   fi
           done
     
    done
    Mon probleme est que je n'arrive pas à passer à ma ligne d'aprés. Je tiens absolument à faire cela sous forme de boucle.

    Merci pour votre aide

  2. #2
    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,

    Tu devrais essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    modele="toto"
    fichier="monFichier"
    grep -q $modele $fichier && echo "J'ai trouvé '$mod' dans '$fichier'"

  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
    Il y a plein de trucs à améliorer dans ton code, mais essaie simplement de mettre des guillemets sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for UneLigne in "$Fichiers"

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    ça va un peu mieux, mais ça boucle, ça boucle !!

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    peut on par exemple faire :

    cat toto.txt tata.txt | while read UneLignetoto UneLignetata
    do
    .....
    done

    le programme lira alors la premiereligne du fichier toto, en y affectant la variable $UneLigneoto et dans le fichier tata, la ligne sera représenté par la variable $UneLignetata

  6. #6
    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
    Il faudrait passer beaucoup de temps pour expliquer ce qui pourrait être amélioré, et je ne l'ai pas. Je te donne un code non testé. Essaie de comprendre et pose des questions précises sur ce qui t'échappe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read ligne
    do
      [[ ${ligne%%;*} == "toto" ]] && echo "OK"
    done < X.txt
    Attention, il faut un dernier '\n' à la fin du fichier X.txt, sinon la dernière ligne ne sera pas traitée. Si jamais c'est le cas, dis-le, j'ai un petit truc.

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    merci pour ton aide !!

    maintenant est ce que l'on peut faire cela ?

    cat toto.txt tata.txt | while read UneLignetoto UneLignetata
    do
    .....
    done

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2014, 18h08
  2. lire fichier .txt (NOTEPAD) ligne par ligne
    Par skambram dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/06/2009, 18h41
  3. lire un fichier de string ligne par ligne
    Par bilzzbenzbilz dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/02/2009, 10h44
  4. [lecture d'un fichier] ligne par ligne
    Par pitit777 dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 11h22
  5. [debutant]lecture fichier ligne par ligne
    Par Battosaiii dans le forum C
    Réponses: 2
    Dernier message: 13/11/2005, 19h02

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