2つのファイルの組み合わせであり、新しいファイルで一意です。

2つのファイルの組み合わせであり、新しいファイルで一意です。

以下に示すように、変更がほとんどなく、他の列もほとんどない同様の最初、2番目、3番目の列を持つ2つのファイルがあります。

ファイル1:

AT1  AT22  24  1 ATAGATA ATTATAT
AT2  AT24  22  0 ATAGATA ATTATAT
AT3  AT23  263 3 ATAGATA ATTATAT
AT4  AT28  252 6 ATAGATA ATTATAT

また、ファイル2から:

AT1  AT22  22  1 ATAGATA ATTATAT
AT3  AT23  265  1 ATAGATA ATTATAT
AT4  AT28  253  1 ATAGATA ATTATAT

出力は、3番目の列に+または-2緩和を適用することによって、これらのファイルを統合して一意にする必要があります。最初の3つの列がこれらの条件と一致する場合は、両方のファイルに4番目の列を追加する必要があり、他のファイルは通常どおりに印刷する必要があります。まるで

AT1  AT22  24  2 ATAGATA ATTATAT
AT2  AT24  22  0 ATAGATA ATTATAT
AT3  AT23  263 4 ATAGATA ATTATAT
AT4  AT28  252 7 ATAGATA ATTATAT

ベストアンサー1

awk '
    NR==FNR {
        a[$1,$2] = $3
        val[$1,$2] = $4
        next
    } 
    ($1,$2) in a {
        for (n=$3-2; n<=$3+2; n++)
            if (a[$1,$2] == n) {
                $4+=val[$1,$2]
                break
            }
    } 
    {print}
' file2 file1
AT1 AT22 24 2 ATAGATA ATTATAT
AT2  AT24  22  0 ATAGATA ATTATAT
AT3 AT23 263 4 ATAGATA ATTATAT
AT4 AT28 252 7 ATAGATA ATTATAT

おすすめ記事