可能なすべての一致ペアと関連情報

可能なすべての一致ペアと関連情報

「、」(ID、info1、およびinfo2)に分割された3つの列を持つ入力でtxtファイルがあります。 IDに基づいて可能なすべての一意の一致ペアを持つ出力を取得したいと思います。一致する各ペアについて、関連するすべての情報をリンクする必要があります。

入力.txt

Id,info1,info2
6,7.2,79.16
7,6.6,78.93
8,6.1,78.06

出力.txt

ID1,ID2,info1.1,info1.2,info2.1,info2.2 
6,7,7.2,6.6,79.16,78.93
6,8,7.2,6.1,79.16,78.06
7,8,6.6,6.1,78.93,78.06

どうすればいいですか?誰でも私を助けることができますか?

ベストアンサー1

いくつかのPerl、リスト::追加ユーティリティCPANから:

perl -MList::MoreUtils=zip -F, -lne '
    next if $. == 1;
    push @lines, [@F];
} END {
    print "id1,id2,info1.1,info1.2,info2.1,info2.2";
    for ($i = 0; $i < @lines - 1; $i++) {
        for ($j = $i+1; $j < @lines; $j++) {
            print join ",", zip @{$lines[$i]}, @{$lines[$j]};
        }
    }
' input.txt

おすすめ記事