如何使用awk或grep计算包含特定范围或数字间隔的行?

时间:2013-08-26 20:52:12

标签: awk grep

我有以下几行:

DL_SINR 48 106.202 660.04 16.9651 18 7992
DL_SINR 49 116.333 660.363 16.9413 18 7992
DL_SINR 50 135.815 654.794 24.218 24 13536

我想计算哪些行包含第三列中100.0105.0之间的数字。

我搜索了很多,但我找不到它。用grep或awk会很棒。

3 个答案:

答案 0 :(得分:3)

Awk是这项工作的好工具。它在空格中分割行,并以1开头编号,因此第三个字段为$3

awk '$3 >= 100.0 && $3 <= 105.0 { count++ } END { print count ? count : 0 }' infile

答案 1 :(得分:1)

您可以使用awk获取第3列值介于100和105之间的行,并使用wc -l获取总行数。

awk '$3>=100&&$3<=105 {print $0}'  test.txt | wc -l

答案 2 :(得分:1)

使用

$ perl -anE '$c++ if ($F[2] >= 100.0 and $F[2] <= 150.0);END{say $c}' file
3