根据超过1列条件计算行数

时间:2015-11-25 10:09:21

标签: linux awk stack

我有一个像这样的数据文件

H1   H2   H3   E1   E2   E3   C1   C2   C3  
0    0    0    0    0    0    0    0    1  
1    0    0    0    1    0    0    0    1  
0    1    0    0    1    0    1    0    1          

现在我想计算H1H2H3E1E2E3具有相同模式的行数。例如,我想计算时间H1H2H3E1E2E3都是{{ 1}}或010

我尝试使用此代码,但它并没有真正起作用

000

1 个答案:

答案 0 :(得分:3)

这样的东西
>>> awk '$1$2$3 == $4$5$6' input | wc -l
2

它的作用是什么?

  • $1$2$3 == $4$5$6检查由列1 2和3组成的字符串是否等于4 5和6形成的列。如果为真,awk采用默认的打印整行的操作并且wc负责计算这些线。

或者,如果您想要完整的awk解决方案,可以编写

>>> awk '$1$2$3 == $4$5$6{count++} END{print count}' input
2