[root@centos6-1 ~]# cat infile
aaa -1
aaa -2
aaa -3
aaa 28
aaa -22
bbb -2
bbb -4
bbb -6
ccc -2
ccc -3
ccc -8
ccc -10
ddd -2
ddd -4
ddd -12
[root@centos6-1 ~]#
[root@centos6-1 ~]#
[root@centos6-1 ~]# awk '$2**2>a[$1]**2{a[$1]=$2}!b[$1]++{n[++x]=$1}END{for(i=1;i<=x;i++)print n[i],a[n[i]]}' infile
aaa 28
bbb -6
ccc -10
ddd -12
[root@centos6-1 ~]#
[root@centos6-1 ~]#
1. 利用第二列的平方值与之前的第二列的平方值作比较,这是一个很好的技巧哈
2. 针对文本排序了
3. 可参考下 awk 中的求平方根的函数 sqrt !
参考:http://bbs.chinaunix.net/thread-4112166-1-1.html