2010-09-29 6 views
2

J'ai deux fichiers, devrait comparer 1ère colonne de fichier1 avec 1ère colonne de fichier2 et le fichier résultant doit être fichier2retour des champs communs dans deux fichiers

Par exemple:

  • fichier1

    pomme
    banane
    Mango
    pomme de terre
    tomate

  • fichier 2

    pomme: fruits
    brinjal: légume
    doigt de dame: légumes
    orange: fruits
    tomate: légume
    pomme de terre: légumes

Résultante le fichier devrait ressembler à quelque chose comme ceci:

pomme: fruits
tomate: légume
pomme de terre: légumes

des idées sur ce seraient appréciés

Merci

Répondre

2

sans la nécessité de trier (moins la création de processus)

$ awk -F":" 'FNR==NR{f[$0];next}($1 in f)' file file2 
apple:fruit 
tomato: vegetable 
potato: vegetable 
0
grep "$(cat file1.txt)" file2.txt 
+1

'grep -f file1.txt file2.txt' –

+0

Je reçois une erreur "nom de la variable illégale" – Shruti

+0

@Dennis: oh, nice , ne connaissait pas ce drapeau, merci: P –

1

Dans Bash, ksh, zsh:

join -t: <(sort file1) <(sort file2) 

Dans d'autres shells, vous devrez trier vos fichiers.

Questions connexes