awk 取绝对值最大

20 篇文章 0 订阅
12 篇文章 0 订阅

[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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值