【发布时间】:2020-12-31 21:02:48
【问题描述】:
我有两个文件。我正在尝试获取文件 1 中第 8 列中每个唯一字段的计数,然后匹配第二个文件第 6 列中的唯一字段值。
所以本质上,我试图 -> 从 File1 的第 8 列中获取每个唯一值和值计数,如果在 file2 的第 6 列中有匹配项
文件1:
2020-12-23 23:59:12,235911688,\N,34,20201223233739,797495497,404,819,\N,
2020-12-23 23:59:12,235911419,\N,34,265105814,718185263,200,819,\N,
2020-12-23 23:59:12,235912029,\N,34,20201223233739,748362773,404,819,\N,
2020-12-23 23:59:12,235911839,\N,34,20201223233738,745662697,404,400,\N,
2020-12-23 23:59:12,235911839,\N,34,20201223233738,745662697,404,400,\N,
2020-12-24 23:59:12,235911839,\N,34,20201223233738,745662697,404,400,\N,
文件2:
public static String status_code = "819";
public static String DeActivate = "400";
预期输出:
total count of status_code,819 : 3
total count of DeActivate,400 : 3
我的代码:
awk 'NR==FNR{a[$8]++}NR!=FNR{gsub(/"/,"",$6);b[$6]=$0}END{for( i in b){printf "Total count of %s,%d : %d\n",gensub(/^([^ ]+).*/,"\\1","1",b[i]),i,a[i]}}' File1 File2
算法
1.从第一个文件中取出第 8 个字段:(例如:819)
2.计算文件中唯一 feild(819) 出现的时间(基于日期)
3从file2的第4个字段中取819对应的值
4个一起打印输出
我相信我应该能够用 awk 做到这一点,但由于某种原因,我真的很挣扎。
【问题讨论】:
-
抱歉,这还不清楚,请使用代码标签编辑您的问题,使用更清晰的样本,然后让我们知道。例如-->
\N真的是您文件中的文字字符吗? -
是的,只需从第一个文件中获取唯一的第 8 个唯一字段计数,并从第二个文件中获取第 8 个字段的描述,然后将唯一字段、字段描述和字段计数一起打印 @RavinderSigh13
-
为输出苦苦挣扎2天
-
我明白了,我们都是来学习的。但是,如果您不提供确切的样本(这些样本会因您的问题而改变),那么没有人将能够提供帮助,因此最好保持您的样本清晰。就像我举的一个例子一样,
\N字符是否真的存在于您的样本中?请更好地编辑您的示例并使用 CODE TAGS 覆盖它们(就像 pii_ke 现在所做的编辑一样),一旦帖子更清晰,请告诉我们。 -
第 8 列中每个唯一字段的计数基于第 1 列的日期。这对输出有何影响?目前,我认为它在预期输出中根本没有影响它。这会导致关于同一主题的另一个问题吗?