要比较第一个文件的第一和第二列与第二个文件的第一列。
我执行以下操作:
awk 'FNR==NR{a[$1]=$2;next} ($1 in a) {print $2,$1,$3,$4}' file 1 file 2
我的脚本的结果是
3 b 33 44
2 c 44 11
5 d 12 21
我仅获得第一列的结果,并且不打印重复的值。我也希望我的输出具有重复的值。
File1
a c 0.1
a b 0.4
b d 0.1
b a 0.8
b c 0.8
c b 0.7
c a 0.6
c d 0.9
d c 0.3
File2
b 3 33 44
c 2 44 11
d 5 12 21
预期输出:
3 b 33 44 5 d 12 21 0.1
3 b 33 44 2 c 44 11 0.8
2 c 44 11 3 b 33 44 0.7
2 c 44 11 5 d 12 21 0.9
5 d 12 21 2 c 44 11 0.3
答案 0 :(得分:3)
在file2
之前阅读file1
更实用。
$ awk 'NR==FNR {
a[$1]=($2 OFS $1 OFS $3 OFS $4)
next
}
($1 in a)&&($2 in a) {
print a[$1],a[$2],$3
}' file2 file1
3 b 33 44 5 d 12 21 0.1
3 b 33 44 2 c 44 11 0.8
2 c 44 11 3 b 33 44 0.7
2 c 44 11 5 d 12 21 0.9
5 d 12 21 2 c 44 11 0.3