📌  相关文章
📜  如何在 bash 列中找到最大值和最小值 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:08:33.913000             🧑  作者: Mango

如何在 bash 列中找到最大值和最小值

当你需要在 bash 列中找到最大值和最小值的时候,可以使用一些内建的命令。在本文中,我们将介绍三种方法:使用 sort 命令,使用 awk 命令和使用 bash 中的循环。

使用 sort 命令

sort 命令可以对文本文件的行进行排序。在本例中,我们不需要进行排序,只需要找到最大值和最小值即可。我们可以使用 -n 选项以数字方式排序,并使用 -r 选项进行反向排序。

# 查找最大值
sort -n -r | head -1

# 查找最小值
sort -n | head -1

这将首先对列表进行排序,然后使用 head 命令找到排序后的第一行或最后一行,分别表示最大值和最小值。

使用 awk 命令

awk 命令是一种文本处理工具,其中一个常见的用途是从文本文件中提取数据。在本例中,我们可以使用 awk 命令来提取列中的数字,并找到最大值和最小值。

# 查找最大值
awk 'BEGIN{max = -inf}{if($1>max) max = $1} END{print max}'

# 查找最小值
awk 'BEGIN{min = +inf}{if($1<min) min = $1} END{print min}'

这将遍历列中的每个数字,并在其中查找最大值和最小值。

使用 bash 中的循环

bash 中使用循环实现查找最大值和最小值的方法也是可行的。我们可以读取列中的数字,然后使用 if 语句来确定最大值和最小值。

# 查找最大值
max=-inf; while read num; do ((num > max)) && max=$num; done < list.txt; echo $max

# 查找最小值
min=+inf; while read num; do ((num < min)) && min=$num; done < list.txt; echo $min

以上代码将打开 list.txt 文件,并逐行读取其中的数字。然后,使用 if 语句来判断最大值和最小值。

无论哪种方法,你都可以找到 bash 列中的最大值和最小值。根据你的需要和偏好,选择其中之一即可。