【发布时间】:2016-09-23 20:51:36
【问题描述】:
我的数据(标签分隔):
1 0 0 1 0 1 1 0 1
1 1 0 1 0 1 0 1 1
1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0
...
我怎样才能准确地 grep 行,例如 5 '1', 理想输出:
1 0 0 1 0 1 1 0 1
另外,我如何 grep 等于或多于 (>=) 5 '1's 的行, 理想输出:
1 0 0 1 0 1 1 0 1
1 1 0 1 0 1 0 1 1
1 1 1 1 1 1 1 1 1
我试过了,
grep 1$'\t'1$'\t'1$'\t'1$'\t'1
但是这只会输出连续的'1',这不是我想要的。
不知道有没有什么简单的方法可以实现,谢谢!
【问题讨论】:
-
正则表达式用于匹配模式,而不是用于计数。
-
awk '{for(i=1;i<=NF;i++) {if(i==5{sum+=$i}}}if(sum==5)print $0}' file未经测试,但接近解决方案。祝你好运。 -
^^
(i==5)在这里是错误的。加上一个缺少的括号,但我猜是一个错字。