【发布时间】:2016-06-08 14:22:45
【问题描述】:
我的 FILE1 如下:
CX 998900 998900 - CX:998900:998900:**ENSG00000000001:E4**:AAAT:4.468:A1
CX 998903 998903 - CX:998903:998903:**ENSG00000000001:E4**:CAAT:6.600:A1
CX 998889 998890 - CX:998889:998890:**ENSG00000000003:E5**:TAAT:7.523:A1
CX 998891 998891 - CX:998891:998891:**ENSG00000000003:E5**:TAAT:7.518:A1
CX 998881 998881 - CX:998881:998881:**ENSG00000000002:E6**:AAAT:4.468:A1
CX 998883 998883 - CX:998883:998883:**ENSG00000000003:E6**:AAAT:5.784:A1
CX 998880 998880 - CX:998880:998880:**ENSG00000000003:E6**:AAAT:5.784:A1
CX 998884 998884 - CX:998884:998884:**ENSG00000000003:E6**:TAAT:6.202:A1
我将 FILE2 作为以粗体突出显示的 id 列表:
ENSG00000000001:E4
ENSG00000000003:E5
ENSG00000000002:E6
ENSG00000000003:E6
ENSG00000000002:E5
我正在尝试使用以下 awk 命令从 FILE1 中的 FILE2 获取 id 的二进制计数
awk 'NR==FNR{a[NR]=$1;next} FNR==1 && f{print f;for(k in a) print a[k], a[k] in b; delete b}{b[$5]; f=FILENAME}END{print f; for(k in a) print a[k], a[k] in b; delete b}' FILE2 FILE1
这样我得到
ENSG00000000001:E4 1
ENSG00000000003:E5 1
ENSG00000000002:E6 1
ENSG00000000003:E6 1
ENSG00000000002:E5 0
【问题讨论】:
-
什么是二进制计数?有则为 1,无则为 0?
-
另外,请注意 FILE1 中的
**具有误导性。我猜你希望它们加粗,但在代码块中它们看起来像原始的原始数据
标签: arrays awk lookup delimiter