计算数字大于 100 的行数

Inn*_*ent 6 grep sed awk

我有一个包含许多数字的文件(只有数字,每个数字都在一行中)。我想找出该数字大于 100(或实际上是其他任何东西)的行数。我怎样才能做到这一点?

Joh*_*024 12

让我们考虑这个测试文件:

$ cat myfile
98
99
100
101
102
103
104
105
Run Code Online (Sandbox Code Playgroud)

现在,让我们计算数字大于 100 的行数:

$ awk '$1>100{c++} END{print c+0}' myfile
5
Run Code Online (Sandbox Code Playgroud)

这个怎么运作

  • $1>100{c++}

    每当行上的数字大于 100 时,变量c就加 1。

  • END{print c+0}

    在我们读完文件后,变量c被打印出来。

    通过添加0c,我们强制 awk 将其视为c数字。如果有任何带有 numbers 的行>100,那么c已经是一个数字。如果没有,那么c将是一个空的(帽子提示:iruvar)。通过向其添加零,我们将空字符串更改为 a 0,从而提供更正确的输出。

  • 我会将 `print c` 更改为 `print 0+c` 甚至是 `print +c`,因此当不存在大于 `100` 的行时,会打印 0 的合理值 (2认同)