使用 shell 脚本的列中的最大数字

use*_*107 3 linux shell-script

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

219m
219m
3.9g
3.9g
4.0g
4.0g
4.1g
4.1g
4.2g
4.2g
4.2g
Run Code Online (Sandbox Code Playgroud)

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

Flu*_*lup 6

sort -h可以为您执行此操作,但需要大小后缀(即“g”和“m”)以大写形式表示。所以对于你的数据,你可以做

tr a-z A-Z < filename | sort -h
Run Code Online (Sandbox Code Playgroud)

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

tr a-z A-Z < filename | LC_NUMERIC=C sort -h
Run Code Online (Sandbox Code Playgroud)