2016-03-08 32 views
0

我使用下面的awk得不到正確的輸出。基本上,如果file1中的字符串未在file2中找到,它將打印爲「缺失」。如果找到字符串,則將其計爲「找到」。截至目前,返回一個零字節的文件。謝謝 :)。awk找到並找不到輸出字符串

文件1

A2M 
A4GALT 
AGRN 

文件2

chr1 955543 955763 chr1:955543-955763 AGRN-6|gc=75 
chr1 957571 957852 chr1:957571-957852 AGRN-7|gc=61.2 

AWK

awk -F'[ -]' 'NR == FNR { seen[$0]; next } !seen[$6]++ { n++ } 
> END { print n " ids found"; for (i in seen) if (!seen[i]) print i " missing" }' file1 file2 

DES紅外發光二極管輸出

1 id found (`since the AGRN string was found`) 
A2M missing 
A4GALT missing 

回答

1
$ cat m.awk 
BEGIN { FS="[[:space:]]+|-" } 
NR == FNR { seen[$0]; next } 
$6 in seen { found[$6]; delete seen[$6] } 
END { print length(found) " ids found" 
     for (i in seen) print i " missing" } 

$ awk -f m.awk file1 file2 
1 ids found 
A4GALT missing 
A2M missing 
+0

非常感謝你:)。 – Chris

+0

歡迎您。沒有太多的解釋,但請讓我知道如果你有任何問題。 – jas