首页 > 解决方案 > 使用 BASH 脚本计算文件中的数字

问题描述

我有以下数据记录的文件:

0.005
0.027
0.352
1.005
0.117
0.752

我正在尝试使用 bash 逐行读取文件并将数字分为 3 组:

if [($num < 0.2)] then min++
if [($num > 0.2) && ($num < 1)] then med++
if [($num > 1)] then max++

最后,我需要打印出 3 个变量来记录所有记录。知道如何在 bash 中读取文件并在 bash 中使用 float 操作它吗?

标签: bashshell

解决方案


不幸的是,bash 不太喜欢浮点数。但是,您可以使用其他文本处理工具,例如awk

awk '{if($0 < 0.2)min++; else if($0 < 1)med++; else max++;} END {print min, med, max;}' file.txt

另请注意,您的算法不能准确处理 0.2 和 1 的数字。


推荐阅读