【问题标题】:Filter out numbers larger than 100 in a file过滤掉文件中大于 100 的数字
【发布时间】:2020-02-15 10:48:27
【问题描述】:

我有一个大文件,每行都有数字,我只需要在这个文件中列出大于 100 的数字

我知道一段时间/如果这可以帮助,但我仍然需要最总结的一个衬里,例如 awk 命令来为我获取该输出

我的文件中的输出示例:

0.000
0.000
260.591
259.906
0.000
864.451
866.000
0.000
0.000
260.796
0.000
0.000
866.351
0.000
87.554
80.000
846.142
1436.716
1435.794
522.925
524.617
0.000

【问题讨论】:

  • 一个简单的awk '$1 > 100' INPUT.txt 就足够了吗?
  • 删除了我的答案,因为@FredrikPihl 的评论是一个更好的版本。

标签: ksh aix


【解决方案1】:

把我的评论变成正确的答案

使用 awk

awk '$1 > 100' INPUT.txt

Bash 无法处理浮点数,但可以通过 bc 的一点帮助来实现

$ while read; do if (( $(echo "$REPLY > 100" | bc -l) )); then echo $REPLY; fi; done < INPUT.txt

来自help read

如果没有提供名称,则读取的行存储在 REPLY 变量中。

【讨论】:

  • 你可能应该$1+0 &gt; 100(试试echo a | awk '$1 &gt; 100')。
  • @JamesBrown - 可能。尝试了两个版本,我得到了相同的结果,所以我把那部分排除在外。不过,不同版本的 awk 可能需要...
  • 感谢 Fredrik 的回答,但由于某种原因它不起作用——我忘了​​提到这是 aix 上的 awk
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多