awk - 残りの列を一致させた後に列を追加します。

awk - 残りの列を一致させた後に列を追加します。

ファイルがあります(ファイル1.txt)、その内容は以下の通りである。

8145216 3377090 1.5
1405541 53595498 1.53637

上記のファイルの最初の2つの列に可能なすべての組み合わせを作成する必要があります。私phpはで議論されたプログラムを使用します。これ答えはすべての組み合わせを生成します。

組み合わせを見つけた後、私のファイルは次のようになります。

3377090 8145216
1405541 8145216
1405541 3377090
53595498 8145216
53595498 3377090
53595498 1405541

上記のファイルに3番目の列値を追加する必要があります。ファイル1.txt値が存在しない場合ファイル1.txt3番目の列にゼロを追加する必要があります。私が得ようとする最終結果は次のとおりです。

3377090 8145216 1.5
1405541 8145216 0
1405541 3377090 0
53595498 8145216 0
53595498 3377090 0
53595498 1405541 1.53637

ベストアンサー1

awk 'NR==FNR{a[$1>=$2?$1SUBSEP$2:$2SUBSEP$1]=$3;next};
{k=$1>=$2?$1SUBSEP$2:$2SUBSEP$1; print $0, k in a?a[k]:0}' file1.txt file2.txt
3377090 8145216 1.5
1405541 8145216 0
1405541 3377090 0
53595498 8145216 0
53595498 3377090 0
53595498 1405541 1.53637

おすすめ記事