2 votes

Grep pattern à partir d'un fichier

J'ai deux fichiers.

Dossier 1

Als  
Mmp  
Ggt1  

Fichier2 (séparé par des tabulations)

cy3 cy5 ID GeneName Zscore  
18 18 NM23XX Als 2.34886  
456 487 NM375FG Rac 0.898549  

Je veux grep la liste du fichier 1 dans le fichier 2. Je veux que le retour soit quelque chose comme :

18 18 NM23XX Als 2.34886  

J'ai utilisé

grep -f file1 file2

mais le retour est le fichier entier avec les correspondances surlignées en rouge. Je ne veux que les lignes correspondantes. J'ai également essayé

grep -x -f file1 file2

Et il n'y a pas eu de retour. Qu'est-ce que je peux faire ?

0voto

SHawarden Points 748
for gene in $(cat file1); do cat file2 | grep $gene; done
18      18      NM23XX  Als     2.34886

0voto

Ray Butterworth Points 1169

Vous semblez faire ce qu'il faut :

$ cat f1
Als
Mmp
Ggt1

$ cat f2
cy3 cy5 ID GeneName Zscore  
18 18 NM23XX Als 2.34886  
456 487 NM375FG Rac 0.898549 

$ grep  -f f1  f2
18 18 NM23XX Als 2.34886  

$ grep --version
grep (GNU grep) 3.1
...

Peut-être que votre fichier f1 a des espaces à la fin de la ligne "Als" ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X