2つのテーブルファイルがあり、次のように結合したいと思います。
ファイルA.out
Well Sample Name Sample Color
A1 B1000-1-KF "RGB(132,193,241)"
A1 B1000-1-KF "RGB(132,193,241)"
A2 B500-3-KF "RGB(168,255,222)"
A2 B500-3-KF "RGB(168,255,222)"
ファイルB.アウト
Well Cycle Target Name Rn ΔRn
A1 1 Ngene 433375.375 -2322.9575
A1 2 Ngene 435992.3438 -1616.2767
A1 3 Ngene 438522 -996.9085
A1 4 Ngene 441353 -76.1964
A2 1 Ngene 541226.1875 13234.6875
A2 2 Ngene 514756.8125 -13234.6875
A2 3 Ngene 517349.2188 -10642.2812
A2 4 Ngene 521414.875 -6576.625
私はC.outが欲しい:
Well Cycle Target Name Rn ΔRn Sample Name
A1 1 Ngene 433375.375 -2322.9575 B1000-1-KF
A1 2 Ngene 435992.3438 -1616.2767 B1000-1-KF
A1 3 Ngene 438522 -996.9085 B1000-1-KF
A1 4 Ngene 441353 -76.1964 B1000-1-KF
A2 1 Ngene 541226.1875 13234.6875 B500-3-KF
A2 2 Ngene 514756.8125 -13234.6875 B500-3-KF
A2 3 Ngene 517349.2188 -10642.2812 B500-3-KF
A2 4 Ngene 521414.875 -6576.625 B500-3-KF
したがって、各ファイルの最初の列がキーであり、B.outとA.outの両方を2番目の列に配置したいと思います。
これまで私は次のことをしました。
awk -F'\t' -vOFS="\t" 'NR==FNR{a[$1]=$1;next}{print $0,a[$2]} B.out A.out > C.out
しかし、うまくいきません。どんなアイデアがありますか?
ありがとう
答え1
努力する
awk -F'\t' -vOFS="\t" 'NR==FNR{a[$1]=$2;next}{print $0,a[$1]} ' A.out B.out
どこ
$1
最初のファイルのキーと$2
値です。- 2番目のファイルでは、キーから値を取得します。
$1
これは私に与える
Well Cycle Target Name Rn ΔRn Sample Name Sample Color
A1 1 Ngene 433375.375 -2322.9575 B1000-1-KF
A1 2 Ngene 435992.3438 -1616.2767 B1000-1-KF
A1 3 Ngene 438522 -996.9085 B1000-1-KF
A1 4 Ngene 441353 -76.1964 B1000-1-KF
A2 1 Ngene 541226.1875 13234.6875 B500-3-KF
A2 2 Ngene 514756.8125 -13234.6875 B500-3-KF
A2 3 Ngene 517349.2188 -10642.2812 B500-3-KF
A2 4 Ngene 521414.875 -6576.625 B500-3-KF
答え2
注文する
for i in A1 A2; do o=`awk -v i="$i" '$1 == i {if(!seen[$2]++){print $2}}' f1`; awk -v i="$i" -v o="$o" 'BEGIN {print "Well Cycle Target Name Rn ΔRn Sample Name" } $1 == i {print $0,o}' f2; done
出力
Well Cycle Target Name Rn ΔRn Sample Name
A1 1 Ngene 433375.375 -2322.9575 B1000-1-KF
A1 2 Ngene 435992.3438 -1616.2767 B1000-1-KF
A1 3 Ngene 438522 -996.9085 B1000-1-KF
A1 4 Ngene 441353 -76.1964 B1000-1-KF
Well Cycle Target Name Rn ΔRn Sample Name
A2 1 Ngene 541226.1875 13234.6875 B500-3-KF
A2 2 Ngene 514756.8125 -13234.6875 B500-3-KF
A2 3 Ngene 517349.2188 -10642.2812 B500-3-KF
A2 4 Ngene 521414.875 -6576.6 B500-3-KF