文件a内容:
1 34
1 23
1 12
2 54
2 21
3 54
3 32
3 21
4 65
4 12
5 234
5 65
5 12
想从文件a中得到第一列重复值中对应第二列的最大值和最小值。即:
最大值
1 34
2 54
3 54
4 65
5 234
最小值
1 12
2 21
3 21
4 12
5 12
一句程序的写法:
1、得到最大值:sort -s -k1n -k2nr a | awk ‘!a[$1]++‘
2、得到最小值:sort -s -k1n -k2n a | awk ‘!a[$1]++‘
解析:
sort命令作用是排序,参数:
-s, --stable 禁用last-resort 比较以稳定比较算法 #这里可以不使用这个参数
-k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)
-n, --numeric-sort 根据字符串数值比较
-r, --reverse 逆序输出排序结果 #默认增序排列输出
awk ‘!a[$1]++‘ 以第一列去重复,默认输出重复的第一个值
时间: 2024-11-12 15:15:05