【发布时间】:2015-11-04 20:37:20
【问题描述】:
我希望打印第 1 列和第 2 列,其中第 1 列匹配,第 3 列是最高值。我目前正在使用 awk 和 sort 来获得这种类型的输出:
EXCEPTION 91 3
EXCEPTION 15 5
TEST 5 1
TEST 1 8
我正在寻找的最终期望输出:
EXCEPTION 15
TEST 1
这是一个文件示例和我正在运行的命令来获取 uniq 计数。我真正想要的是 sort 打印 uniq 排序中的最后一条记录
例外 15
所以我不必使用所有疯狂的 uniq --count 逻辑。 IE:我想知道 column1 是否匹配 >= 3 次并打印该匹配项的最后记录的第二列值。
cat /tmp/testing.txt |grep EXCEPTION
EXCEPTION 15
EXCEPTION 15
EXCEPTION 15
EXCEPTION 91
EXCEPTION 91
EXCEPTION 91
EXCEPTION 91
EXCEPTION 15
EXCEPTION 15
cat /tmp/testing.txt|awk '{print $1 " " $2}'|sed '/^$/d'| awk '$2 >= '1' '|sort |uniq --count|awk '{print $1" "$2" "$3}'|awk '$1 >= '3''|awk '{print $1" "$2" "$3}'|awk '{print $2" "$3" "$1}'
EXCEPTION 15 5
EXCEPTION 91 4
【问题讨论】: