comment puis-je comparer deux fichiers texte qui a plusieurs champs dans unix

j'ai deux fichiers texte

  • fichier 1

    number,name,account id,vv,sfee,dac acc,TDID
    7000,john,2,0,0,1,6
    7001,elen,2,0,0,1,7
    7002,sami,2,0,0,1,6
    7003,mike,1,0,0,2,1
    8001,nike,1,2,4,1,8
    8002,paul,2,0,0,2,7 
  • fichier 2

    number,account id,dac acc,TDID
    7000,2,1,6
    7001,2,1,7
    7002,2,1,6
    7003,1,2,1

je veux comparer ces deux fichiers texte. si les quatre colonnes de fichier 2 est-il dans le fichier 1 et de l'égalité de moyens je souhaite de sortie, comme cette

7000,john,2,0,0,1,6
7001,elen,2,0,0,1,7
7002,sami,2,0,0,1,6
7003,mike,1,0,0,2,1

nawk -F"," 'NR==FNR {a[$1];next} ($1 in a)' file2.txt file1.txt.. cela fonctionne bien pour la comparaison de deux colonne unique dans les deux fichiers. je veux comparer plusieurs colonnes. quelqu'un a une suggestion?


EDIT: a Partir de l'OP commentaires:

nawk -F"," 'NR==FNR {a[$1];next} ($1 in a)' file2.txt file1.txt

.. cela fonctionne bien pour la comparaison de deux colonne unique dans les deux fichiers. je veux comparer plusieurs colonnes. vous avez une suggestion?

  • Qui langage de programmation comptez-vous utiliser?
  • Unix. je l'ai mentionné avant de lui-même
  • Unix n'est pas un langage de programmation.
  • ok merci, je ne suis pas bon dans les langages de programmation. mais je suis à l'aide de sun solaris serveur
  • La sortie que vous avez fourni ressemble exactement comme le fichier 1 (moins l'en-tête). Pouvez-vous donner l'exemple de lignes dans les fichiers d'entrée qui ne sera pas apparaître dans la sortie?
  • j'ai édité ce que vous voulez. 8001,8002 n'est pas présent dans le fichier 2.
  • Merci de considérer mon awk 1-liner ici --> stackoverflow.com/questions/3186215/... je serais très surpris si le Perl réponse vous donne de meilleures performances. Si vous exécutez ce contre les fichiers dans le go de la taille, la performance est très important. De Plus, c'est beaucoup plus lisible =)
  • pour donner exactement ce que je veux. @pdehaan, merci pour votre contribution. Merci à tous ceux qui m'ont aidé à résoudre mon problème

InformationsquelleAutor gyrous | 2010-07-06