随机产生了一组测试数据,文件名为income.txt
1 3 4490
2 5 3896
3 4 3112
4 4 4716
5 4 4578
6 6 5399
7 3 5089
8 6 3029
9 4 6195
10 5 5145
说明:上面的三列数据分别是家庭编号、家庭人数、家庭月总收入。
实现
#!/bin/bash
[ $# -lt 1 ] && echo "please input the income file!" && exit -1
[ ! -f $1 ] && echo "$1 is not a file!" && exit -1
income=$1
awk '{ printf("%d %0.2f\n", $1, $3/$2); }' $income | sort -k 2 -n -r
说明:
[ $# -lt 1 ] : 要求至少输入一个参数
[ ! -f $1 ] : 要求输入参数是一个文件
sort -k 2 -n -r : 对结果第2列排序,-n代表按数字排序, -r代表按照递减的顺序排序
结果
$ ./gettopfamily.sh income.txt
7 1696.33
9 1548.75
1 1496.67
4 1179.00
5 1144.50
10 1029.00
6 899.83
2 779.20
3 778.00
8 504.83