linux 中 计算一列数值中最大值、最小值、及最大值和最小值之差

 

01、先排序,然后取首尾(数据大时不适用)

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                       ## 测试文件
8
3
39
28
2
4
6
[root@pc1 test1]# sort -n a.txt | head -n 1       ## 最小值
2
[root@pc1 test1]# sort -n a.txt | tail -n 1       ## 最大值
39

 

002、利用awk循环判断

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt               ## 测试文本
8
3
39
28
2
4
6                                         ## 输出最小值
[root@pc1 test1]# awk '{if(NR == 1) {min = $1}; if($1 < min) {min = $1}} END {print min}' a.txt
2                                         ## 输出最大值
[root@pc1 test1]# awk '{if(NR == 1) {max = $1}; if($1 > max) {max = $1}} END {print max}' a.txt
39

 

 

003、

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt            ## 测试数据
8
3
39
28
2
4
6                                     ## 输出最大值和最小值之差
[root@pc1 test1]# sort -n a.txt | head -n 1 | paste - <(sort -rn a.txt | head -n 1) | awk '{print $2 - $1}'
37

 。

 

posted @ 2024-02-17 15:39  小鲨鱼2018  阅读(141)  评论(0编辑  收藏  举报