我有2个制表符分隔的文件 - 具有不同的列和&每个行号。
请注意:第1列(每个文件中)中的某些“名称”会重复多次。每个真实文件都是数百万行。
文件1:
Sc1 10 20
Sc1 20 30
Sc1 30 40
Sc2 40 50
Sc2 50 60
Sc2 60 70
Sc3 70 80
Sc3 80 90
Sc3 90 100
文件2:
Sc1 22 23 100
Sc1 44 45 50
Sc2 60 61 25
Sc3 79 80 40
Sc3 100 101 40
我想测试以下内容:
如果第一列中的值& File2的第一行与File1的第一列中的任何位置匹配,并且如果第二列与& File2的第一行值>> =第二列File1但是<第三列File1(在第一个'IF'中建立匹配后,它们将在File1的相应行上),然后将第4行第1行File2中的值写入File3,ELSE将NA写入File3。
在测试每个File2第1列值后,File3应如下所示:
100
NA
25
40
NA
我希望我已经说清楚,并且有人可以提供一些帮助:)
非常感谢
Ted(全新的unix和每天学习)
#
编辑 我可以在Excel中实现这一点:
从单元格A1:C9
粘贴文件1从单元格D1:G5
粘贴文件2在H1中编写以下公式:
= IF(COUNTIFS($ A $ 1:$ A $ 9,D1,$ B $ 1:$ B $ 9,“< =”& E1,$ C $ 1:$ C $ 9,“>”& E1 )大于0,G1, “NA”)
将公式复制到H5。
但是 - 真实世界的文件超过了Excel的大小,所以将它转移到Unix是我的问题。