- 已关闭**。此问题需要超过focused。当前不接受答案。
- 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
5天前关闭。
Improve this question
我遇到了一个与awk相关的问题,无法计算匹配的出现次数。我有一个包含ID(数字和/或字符)列表的文件,以及另一个包含另一个ID的文件,其中第二列包含第一个ID的集合:
文件一:
| ID1 |
| --- |
| 1 |
| 2 |
| 5 |
| 7 |
档案二:
| ID2 | ID1_collection |
| -------- | -------- |
| 1 | 1,2,3 |
| 2 | 1 |
| 3 | 4 |
| 4 | |
| 5 | 5 |
| 6 | |
包含集合的列不需要填充或匹配第一个文件中的任何ID。目标是这样一个文件:
| ID2 | ID1_collection | count |
| -------- | -------- | -------- |
| 1 | 1,2,3 | 2
| 2 | 1 | 1
| 3 | 4 | 0
| 4 | | 0
| 5 | 5 | 1
| 6 | | 0
但是,我无法考虑一个逻辑,该逻辑贯穿文件1和count的整个列,使用awk脚本时,这些ID中有多少出现在集合中。
我想我可以创建一个包含所有ID1值的数组,并在列内的分隔符处拆分ID1_collection中的每个字符串(全局分隔符是"|")到grep中查找精确匹配。但是我不能弄清楚a)这会有多高效(我想不是真的)和b)如何以合理的方式编写语法...
任何帮助都将不胜感激
1条答案
按热度按时间2jcobegt1#
使用
awk
的方法数据