【发布时间】:2018-09-05 11:23:46
【问题描述】:
我有一个包含这样行的文本文件(在 Linux Bash 中):
A B C D
A B C J
E B C P
E F G N
E F G P
A B C Q
H F S L
G Y F Q
H F S L
我需要为前 3 列找到具有唯一值的行,打印它们的计数,然后为每个唯一行打印汇总的最后一列,所以结果是这样的:
3 A B C D,J,Q
1 E B C P
2 E F G N,P
1 G Y F Q
2 H F S L
我尝试过的:
cat FILE | sort -k1,3 | uniq -f3 -c | sort -k3,5nr
有什么建议吗?
提前致谢!
【问题讨论】:
-
欢迎来到 SO。 Stack Overflow 是一个面向专业和狂热程序员的问答网站。目标是您将一些自己的代码添加到您的问题中,以至少显示您为解决这个问题所做的研究工作。
-
唯一组是否总是由相邻的行组成?
-
感谢您的提问 - 不一定,行不需要相邻,我现在已经编辑了原帖。
-
我明白了前三列的计数,但最后的值没有分组:$ cat FILE |排序-k1,3 | uniq -f3 -c |排序 -k3,5nr
-
在收到答案后修改您的要求是一种可疑的做法。也许您应该回滚您的最新编辑,接受其中一个答案,然后发布一个新问题,其中包含您的实际要求以及到目前为止的代码。