0

我有一个如下所示的文本文件。我想计算第一列和第二列中每个人的唯一连接数。第三列是第一列人的身份证号,第四列是第二列人的身份证号。

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 有两个联系。susan 的 ID 是 156。 Ali 和 anna 的 ID 分别是 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
4

1 回答 1

0

一个简单的猫 ztest.txt | 排序-k1,2 | uniq -c 可以解决问题,但是由于您希望对其进行格式化-您可以像这样使用 awk :

完整的命令:

$ 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
于 2013-05-30T04:20:00.503 回答