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 :

Correspondance entre fichiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Octobre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 2
    Par défaut Correspondance entre fichiers
    s'il vous plait j'ai besoin de votre aide sur ça:

    file1 qui contient une colonne de numéro et lettre
    file2 qui contient plusieurs colonnes: 3 par exemple

    le fichier résultat doit retourner les lignes du file2 qui sont communes à la colonne du fichier file1, seule la colonne 1 du file 2 est sujet de comparaison:

    Ex:
    file 1:
    1
    2
    A
    8

    file 2:
    7 111 UI PM
    A OI8 MPO
    1 098 JKL

    le résultat attendu:
    A OI8 MPO
    1 098 JKL

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 713
    Par défaut
    Bonjour,

    join est ton ami
    mais il faudra trier les fichiers auparavant; la sortie ne sera alors pas dans l'ordre que tu as indiqué (à moins de refaire un tri, bien sûr).

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    En quelques coups de cuiller à pot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    egrep $(echo "^($(cat file1 | tr '\n' '|' | sed -e 's:|$::'))") file2
    egrep "^($(cat file1 | tr '\n' '|' | sed -e 's:|$::'))" file2    # le echo est inutile
    ...sans join

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 713
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    egrep "^($(sed ':f;/^$/! {N;s/\n/|/g;bf}' file1))" file2
    A OI8 MPO
    1 098 JKL

  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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ fgrep -w -f file1 file2
    A OI8 MPO
    1 098 JKL

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Bon bah puisque personne ne l'a fait avec join :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [idriss@hp-dv6:~]$ join -11 -21 <(sort fichier1) <(sort fichier2)
    1 098 JKL
    A OI8 MPO
    Cordialement,
    Idriss

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ fgrep -w -f file1 file2
    A OI8 MPO
    1 098 JKL
    [Chipotage]
    Et si file2 contient une ligne comme 3 098 A, ne risque-t-il pas d'y avoir des faux positifs?
    [/Chipotage]

    )jack( le chipoteur

  8. #8
    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 jack-ft Voir le message
    [Chipotage]
    Et si file2 contient une ligne comme 3 098 A, ne risque-t-il pas d'y avoir des faux positifs?
    [/Chipotage]

    )jack( le chipoteur
    Toutafé

    Mais bon, il y a suffisamment de solutions proposées pour palier à ce petit inconvénient

    Et pis, z'ont qu'à pas avoir de lignes douteuses dans leur fichier... noméo !

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

Discussions similaires

  1. Script bash pour correspondance entre fichiers .DOT (GraphViz)
    Par Miel56 dans le forum Administration système
    Réponses: 1
    Dernier message: 17/02/2015, 17h01
  2. correspondance entre 1 fichier xml et un autre
    Par mflat2 dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 25/06/2010, 12h02
  3. Correspondance entre un JTable et un fichier xml
    Par bossy451 dans le forum Composants
    Réponses: 0
    Dernier message: 29/10/2008, 03h41
  4. Quel SGBD correspond aux fichiers à extension .DAT
    Par jcpitaud dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/04/2006, 21h11
  5. Réponses: 4
    Dernier message: 23/11/2005, 15h25

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