匹配多个列并打印二进制结果

时间:2013-06-20 09:08:39

标签: linux sed awk

我想打印file1的二进制结果,file2中的值是匹配的:

文件1:

a b c d
1 2 9 4
5 6 7 8
4 3 0 1
8 9 6 5

file2的:

x
1
2
3
4
5
6
7
8

预期结果:

a b c d
1 1 0 1
1 1 1 1
1 1 0 1
1 0 1 1

x中的列file2a中的所有列bcdfile1相匹配。我想在Result文件中打印二进制结果。

1 个答案:

答案 0 :(得分:2)

这样可以解决问题:

awk 'FNR==NR{if(NR>1)a[$1];next}FNR>1{for(i=1;i<=NF;i++)$i in a?$i=1:$i=0}1' f2 f1
a b c d
1 1 0 1
1 1 1 1
1 1 0 1
1 0 1 1

f2f1分别是file2file1