【发布时间】:2013-08-12 18:54:26
【问题描述】:
我一直在尝试打印最常见的行并删除与第一个字段中有很多不同值的大文件中的制表符分隔的键值有关的重复项;
示例输入:
a|gofortheeyeboo 0.61
a|gofortheeyeboo 0.81
a|gofortheeyeboo 0.81
a|gofortheeyeboo 0.81
a|gofortheeyeboo 0.81
a|gofortheeyeboo 0.81
a|gofortheeyeboo 0.91
a|gofortheeyeboo-gone 0.07
a|gofortheeyeboo-gone 0.07
a|gofortheeyeboo-abouttogone 0.61
a|gofortheeyeboo-abouttogone 0.12
b|attaack-attack 0.07
不同键的期望输出:
a|gofortheeyeboo 0.81
a|gofortheeyeboo-gone 0.07
a|gofortheeyeboo-abouttogone 0.61
a|gofortheeyeboo-abouttogone 0.12
b|attaack-attack 0.07
到目前为止,在第二个制表符分隔的字段中管理了 最大值 的输出,删除了重复项;
awk -F '\t' '{ if (l[$1] <= $2) l[$1] = $2} END {for (i in l) print i"\t"l[i];}'
上面不需要的命令的输出;
a|gofortheeyeboo 0.91
a|gofortheeyeboo-abouttogone 0.61
b|attaack-attack 0.07
a|gofortheeyeboo-gone 0.07
【问题讨论】:
-
试试
uniq和head怎么样? -
这是一个大文本文件。不幸的是,不是关于嘘声。