我有一個unix問題。我有一個如下所示的文件:按列過濾文件
AAAA 0 1 2 2 0
BBBBB 2 2 2 2 2
CCCCC 1 1 0 1 1
DDDD 0 0 0 0 0
EEEEE 2 2 0 2 2
該文件有成千上萬行像這樣(也是製表符分隔)。文件的第一列是名稱,第二到第六列是數據。這是第2至第6列的信息很重要。我需要輸出第2至第6列不超過1(零)的所有行。例如,我想輸出看起來像這樣:
BBBBB 2 2 2 2 2
CCCCC 1 1 0 1 1
EEEEE 2 2 0 2 2
我一直在努力做到這一點在儘可能簡單的方法,並嘗試以下awk命令:
awk 'BEGIN{out!=0;}{if($2!=0)out++;if($3!=0)out++;if($4!=0)out++;if($5!=0)out++;if($6!=0)out++;if (out>=4)print;}'
但,當我嘗試這個時,它只是給我原始的輸入文件。我不確定什麼是錯,或者我是否採取了正確的方法。任何幫助,將不勝感激。
第一行'out'總是要被GT 4,以便最後一行總是匹配之後。 – starbolin