2013-06-20 47 views
0

我要打印二進制結果file1是值在file2比賽:預計比賽多列和打印二進制結果

x 
1 
2 
3 
4 
5 
6 
7 
8 

文件1:

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

文件2結果:

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

通過與所有列abcdfile1匹配file2x。我想在Result文件中打印二進制結果。

+1

看起來這是一個非常具有挑戰性的問題。無論如何,你到目前爲止嘗試過什麼?不要假裝我們從頭開始解決它。 – fedorqui

回答

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是。

+1

'FNR == NR'技巧非常棒!感謝你的分享 :)。 –

+0

@Summer_More_More_Tea如果你喜歡,你應該看看這個[頁面](http://backreference.org/2010/02/10/idiomatic-awk/)。 –

+1

@sudo_O謝謝!好想法 –