使用 shell 脚本获取某一列中的最大数字

使用 shell 脚本获取某一列中的最大数字

我有一个包含一些列格式的数据的文件,例如:

219m
219m
3.9g
3.9g
4.0g
4.0g
4.1g
4.1g
4.2g
4.2g
4.2g

我想比较数据并找出其中的最大值。这里 g 代表 GB,m 代表 MB。如何使用 Linux shell 脚本找到最大数字?

答案1

sort -h可以帮你做到这一点,但需要大写量级后缀(即“g”和“m”)。因此,对于你的数据,你可以这样做

tr a-z A-Z < filename | sort -h

在某些语言环境中,.不被识别为小数分隔符(请参阅小数分隔符:使用示例 [维基百科])。如果是这种情况,请修改命令如下:

tr a-z A-Z < filename | LC_NUMERIC=C sort -h

相关内容