0

以下のようなテキストファイルがあります。1 列目と 2 列目で、各人の一意の接続数を数えたいと思います。3 列目は 1 列目の人物の ID 番号、4 列目は 2 列目の人物の 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

たとえば、スーザンには、アリとアンナとの 2 つのつながりがあります。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

シンプルな猫 並べ替え -k1,2 | uniq -c はトリックを行いますが、フォーマットしたいので、次のように awk を使用できます: awk '{ print $2 " :- " $4 " connected to " $3 " :- " $5 " -- count: " $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
于 2013-05-30T04:20:00.503 に答える