【发布时间】:2017-09-08 02:43:36
【问题描述】:
我有一个 AWK 命令要修改,以根据主键获取记录文件的唯一计数。在记录文件中,有 21 个元素,第 1 列和第 18 列是 PK。记录都在一行上,记录分隔符是\^,字段分隔符是|。这是我到目前为止所拥有的,但它仍然给了我文件中的总记录数,但不是唯一的:
awk 'BEGIN{RS="\\^";FS="\\|";} {a[ $1 $18 ]++;}END{print length(a);}' filename
样本数据:
1|01212121|0|OUTGOING| | | | | |57 OHARE DR|not available|DALLAS|TX|03560|US|1131142334825|1|Jan 15 2004 11:12:06:576AM|Jan 15 2004 2:54:41:226PM|SYSTEM|\^
这类数据有 200 万行,我有 30 个重复项。
预期输出应为:1999970
【问题讨论】:
-
提供样本输入和预期输出。
-
您说 PK 是第 1 列和第 18 列,但您在脚本中使用的是第 1 列和第 19 列。
-
抱歉,刚刚更新。
-
等待你增加索引给定从 $1 $18 创建的键?只做 = 1 而不是 ++ ?还是我不懂语法
-
为什么这个问题用
python和sed标记?