我有一个文本文件,如下所示。我想计算第一和第二列中每个人的唯一连接数。第三列是第一列人的ID号,第四列是第二列人的ID号。
susan ali 156 294
susan ali 156 294
susan anna 156 67
rex rex 432 564
rex rex 432 564
philip sama 543 22
例如,susan与ali和anna有两个连接。苏珊的身份证是156.阿里和安娜的身份证分别是294,67。在输出中,最后一列是每个人的连接数。总连接数是每个人的连接总和。
你的帮助将不胜感激!
输出:
susan 156 :- ali 294 anna 67 2
rex 432 :- rex 564 1
philip 543 :- sama 22 1
ali 294 :- susan 156 1
anna 67 :- susan 156 1
rex 564 :- rex 432 1
sama 22 :- philip 543 1
Total connections:-8
答案 0 :(得分:0)
一只简单的猫ztest.txt | sort -k1,2 | uniq -c可以解决这个问题,但是因为你想要它的格式化 - 你可以像这样使用awk: awk'{print $ 2“: - ”$ 4“连接到”$ 3“: - ”$ 5“ - 计数:”$ 1}“
完整命令:
$ cat ztest.txt | sort -k1,2 | uniq -c | awk '{ print $2 " :- " $4 " connected to " $3 " :- " $5 "-- count: " $1} '
输出:
philip :- 543 connected to sama :- 22 -- count: 1
rex :- 432 connected to rex :- 564 -- count: 2
susan :- 156 connected to ali :- 294 -- count: 2
susan :- 156 connected to anna :- 67 -- count: 1