我有这些行:
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.0
之间包含一个数字。105.0
我已经搜索了很多,但我找不到它。grep 或 awk 会很棒。
Awk
是工作的好工具。它将行分隔为空格,它们从 开始编号1
,因此第三个字段将是$3
。
awk '$3 >= 100.0 && $3 <= 105.0 { count++ } END { print count ? count : 0 }' infile
使用perl:
$ perl -anE '$c++ if ($F[2] >= 100.0 and $F[2] <= 150.0);END{say $c}' file
3
您可以使用awk
获取第 3 列值介于 100 和 105 之间的行,并使用wc -l
获取总行数。
awk '$3>=100&&$3<=105 {print $0}' test.txt | wc -l