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 :

Recherche fichier depuis fichier texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut Recherche fichier depuis fichier texte
    j'ai un fichier txt ned_update_img.csv de ce format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    f1;f1a;rep_source
    f2;f2a;rep_source
    f3;f3a;rep_source
    j'aimerais testrer que si le champ2 exist dans la variable repertoire source
    ca m'affiche le champ2
    j'ai essayé avec ce code mais ca ne marche pas .
    je ne comprends rien.merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    rep_fich_img="/cygdrive/d/0temp/presta/ned_ajout_walk/img";
    while IFS=';' read -r champ1 champ2 champ3
    do
    	rep_source="/cygdrive/d/0temp/presta/ned_ajout_walk/img/$champ3"
    	for champ2 in "${rep_source}";
    	do
    		echo "$champ2"
    	done
     done < <(tr -d '\r' <$rep_fich_img/ned_update_img.csv)

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    je ne comprends rien.
    On peut te retourner cette phrase. Comment peux-tu définir champ2 dans une boucle et redéfinir champ2 dans une deuxième boucle imbriquée dans celle déjà citée ? Que vaut champ2 selon toi ?

    De plus, le "for" va prendre les éléments séparés d'espaces. Non ?
    Où sont les espaces dans "/cygdrive/d/0temp/presta/ned_ajout_walk/img/" ?

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Oui justement je ne sais pas ce que vaut champ2. ça me donne des résultats que je ne comprends pas.
    y a-t-il une solution plus simple ?

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ cat fichier
    f1;f1a;rep_source
    f2;f2a;ferff2arep_source
    f3;f3a;rep_source
    $ awk -F';' '($3 ~ $2){print $2;}' fichier                                                                         
    f2a

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    je ne comprends pas trop cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ awk -F';' '($3 ~ $2){print $2;}' fichier

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 361
    Par défaut
    Moi, je ne comprends même pas la question de départ...

    Peux-tu reformuler ton besoin avec des termes comme chaine de caractère ou fichier vis à vis de ton fameux champ2 ?

    Ou en posant la question plus simplement, champs2 doit il être un fichier dans le répertoire champs3 ou alors tu désire trouver la chaine de caractère dans la chaine contenant le champs3 ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    je plussoie.
    c'est pas clair, il faut être plus précis : utiliser un même terme pour un même objet.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Moi, je ne comprends même pas la question de départ...
    Peux-tu reformuler ton besoin avec des termes comme chaine de caractère ou fichier vis à vis de ton fameux champ2 ?

    Ou en posant la question plus simplement, champs2 doit il être un fichier dans le répertoire champs3 ou alors tu désire trouver la chaine de caractère dans la chaine contenant le champs3 ?
    le champ2 doit être un fichier dans le répertoire champ3
    si le fichier de la variable champ2 est dans le repertoire de la variable champ3 et ben je ne fais rien
    si le fichier de la variable champ2 n'est pas dans le repertoire de la variable champ3 et ben je copie
    exemple
    si le fichier f1a n'est pas dans le repertoire rep_source et bien je copie f1 en f1a dans le repertoire rep_source

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    il n 'y a pas de solution plus facile à lire comme code?si je ne comprends pas je l'utiliserais pas car je ne saurais le corriger s'il y a un bug

  10. #10
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 361
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ cat fichier
    f1;f1a;rep_source
    f2;f2a;ferff2arep_source
    f3;f3a;rep_source
    $ awk -F';' '($3 ~ $2){print $2;}' fichier                                                                         
    f2a
    On peut aussi le faire avec grep:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Po '^[^;]*;([^;]*);[^;]*\K\1' fichier
    Là, on a juste une expression régulière, c'est peut-être plus simple à comprendre

Discussions similaires

  1. Recherche dans un fichier texte
    Par Yazoo70 dans le forum C++
    Réponses: 7
    Dernier message: 12/06/2007, 08h31
  2. recherche dans un fichier texte en perl(débutant)
    Par Shyboy dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2006, 23h53
  3. [VB]Recherche dans un fichier texte
    Par mirascheat dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/09/2005, 12h11
  4. Recherche dans un fichier texte volumineux.
    Par Actarus69 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 27/07/2005, 17h39
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

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