【发布时间】:2011-01-06 14:17:08
【问题描述】:
我为自己试图完成一件看似简单的事情而磕磕绊绊。我有一个文件和一个换行符分隔的字符串列表。
文件:
Dat1 Loc1
Dat2 Loc1
Dat3 Loc1
Dat4 Loc2
Dat5 Loc2
我的清单是这样的:
日期1
日期2
日期3
日期4
我要做的是将列表与数据文件进行比较,并计算出现的唯一 Loc 的数量。我只对最大的计数感兴趣。在上面的示例中,当将列表与文件进行比较时,我基本上想要:
Dat1 匹配的 Loc1Count = 1
Dat2 匹配的 Loc1Count = 2
Dat3 匹配的 Loc1Count = 3
Dat4 匹配的 Loc2Count = 1
返回:Loc1 如果 Loc1Count/List 的长度 > 50%
现在,
我知道 awk 1 文件会逐行读取文件。此外,我知道 "echo "$LIST" | awk '/search for a line that contains this/" 将返回与该内部字符串匹配的行。尽管作为嵌套的 awks,但我无法成功地将这些想法结合起来,更不用说如何计算“loc1”与“loc2”(顺便说一下,这将是随机字符串,而不是形式标准)
我觉得这很简单,但我的头撞到了墙上。有任何想法吗?这足够清楚吗?
【问题讨论】:
-
您正在寻找的功能(如 ghostdog74 的 答案所示)称为关联数组。